blomurbex 7.4.37347

Introduction to BlomURBEX Web API

Scope

This documentation describes the Javascript API for the Blom Urban Explorer (BlomURBEX) service.

The main language used for developing interactive and attractive Web applications is JavaScript, so in order to facilitate our clients or third parties the development of applications against BlomURBEX, Blom has developed this JavaScript API.

This JavaScript API provides a simpler access to BlomURBEX than direct HTTP requests to the server. The API hides from the developers the underlying HTTP communication with BlomURBEX servers.

JavaScript API offers a set of objects and classes that can be easily added to the HTML page. These objects offer a simple set of functionality to the developer, and handle all the communication with the server, display the proper images, allow the user to interact with the images and also provide information about what is shown in the images or about measurements performed on the image.

What's new in version 7.x

Version 7.x is a full rework of the BlomURBEX Javascript API with respect the older 1.0 to 6.0 versions.

Older versions 1.0 to 6.0 had some drawbacks:

  • Based on OpenLayers 2 using refactorization.
  • Only for PC and with small support for tablets.
  • Based on ES 5, the old style of Javascript.
  • Based on web browser plug-ins for 3D rendering.

New version 7.x has many advantages:

  • Based on OpenLayers 4, Three.js and Cesium using inheritance. Previous refactorization of OpenLayers has been removed, and new big APIs as Three.js or Cesium has been added to the dependencies. This way the new API can grow in functionality as long as the dependencies change in the future with few extra work.
  • Support for PC and touch devices. Now the API has been designed with 'mobile-first' design in mind, allowing the full set of interactions that current and future devices can bring.
  • Based on ES 6 and modern JS development. Current developement is using ES 6 language features, as Promises. ES 6 code could also be replaced in a future by a full ES6 or TypeScript port so a lot of new modern development tools and features be available.
  • Based on modern Canvas 2D and WebGL standards for 2D and 3D rendering, so there is no more any need to install plug-ins in the browser.
  • Designed for modularization. The full API has been separated in five big modules: Core, Ortho, Oblique, Street and 3D to allow for a modular use of the API with only the parts needed.

Google Closure & UglifyJS

Currently BlomURBEX API 7.x is written in a way so it can be compiled with Closure Compiler. Closure is a set of libraries and tools from Google to help in the creation of complex APIs. This development protocol is the same that OpenLayers has used for its recent versions 3.x and 4.x. Although it can be compiled with Closure, the API is distributed bundled with the dependencies and minified using UglifyJS instead of Closure, another tool that minifies the JS files with similar sizes as Closure Compiler.

BlomURBEX API 7.x is going to be ported in a future to more modern JavaScript versions, as ES2015 or TypeScript, to remove the need for the Closure Compiler, the same way as OpenLayers will remove the Closure Compiler in a future 5.0 release.

Compatibility

The BlomURBEX Javascript API 7.x is compatible with:

  • Edge 16+.
  • Firefox 58+.
  • Chrome 49+.
  • Safari 11+.
  • iOS Safai 10.3+.
  • Chrome for Android 64.