Introduction

IBM Interactive Maps for BlueMix is a cloud based service for building and sharing map-based web applications. The service can help you create interactive maps to visualize data at-rest as well as data-in-motion, in outdoor or indoor settings.

Interactive Maps ® provides hosted tools and APIs that simplify the process of building web-based mapping applications and working with location data.
The service includes capabilities for a wide range of tasks and stakeholders, such as:

  • Importing, curating, enriching and publishing geospatial datasets
  • Visually exploring, understanding, and communicating styled maps and insights about location business data
  • Using the APIs and SDK to programmatically integrate maps in web applications

Key Features

The following key features and capabilities are provided:

  • Framework for building interactive maps for both indoor and outdoor settings
  • Support for multiple commercial and open base map providers, including a built-in OSM tile service provider
  • Vector overlays for visualizing business data as Icons, Bubbles, LineString, Polygons, and MultiPolygons
  • Advanced renderers for visualizing heatmaps (density, intensity), hotspots, flow maps, and spatiotemporal flower maps
  • Live maps - for visualizing data in motion
  • Storage services for GeoJSON static vector layers
  • Geofence queries against stored layers
  • Visual styling framework - to control how color, stroke, opacity, and other feature attributes are styled
  • Interaction and controls - configure what attributes are presented in popups (click) and tooltips (hover)
  • Hosted tools - for visual data curation, map styling, and publishing
  • REST APIs - for developers to integrate mapping capabilities in applications
  • Integration with weather data and predictive analytics

Samples

Some examples of maps that can be created to support various scenarios:


Bubble Map

Understand the distribution and values of point events in urban area

Trajectory Map

Visualize the trip routes of taxis, or jog routes of people in the city

Hotspot (hexagon) Map

Understand spatial and spatiotemporal density of objects and events. For example where clients click on sales promotion


Live (Icon) map

Track and trace truck fleets, ships, or mobile workforce in near real-time

Indoor Heatmap

Visualize visitor traffic in an indoor retail stor

Flow maps

Visualize movement between origins and destinations


Intensity maps

prediction over continuous space based on interpolated value between sensed/measured data points

Additional Samples on Github

Additional samples of maps and layers will be made available in this Github space

Getting Started

Create an account via BlueMix

IMPORTANT NOTICE: IBM Interactive Maps for Bluemix has been retired an is not available as a Bluemix Service

Request an account via email

In situations where provisioning an account via Bluemix is not possible, you can request to provision a service instance manually via email by sending a request to polaris@il.ibm.com.

Tools

Map Gallery

Map Gallery is landing page from which you can browse, access, and manage your maps

Click on a thumbnail to access and open a map in view mode.

Click on the action icons to edit or delete an existing map. Click on Create New Map to create a new map from scratch

Map Author

Map Author enables you to import, work, enrich and publish geospatial data:

  • From the Menu Bar, you can select to import geospatial features from multiple sources of information, configure the styling of the features, or create new visualizations as additional layers.
  • The Drawing Canvas displays the existing data and serves as a drawing canvas for new features. You can use the zoom and center controls to orient navigate around your data.
  • Use the drawing controls draw new geospatial features directly on the map, or to edit an existing geomtery by resizing or reshaping it.
  • The Data Editor enables you to define and update additional properties of the geospatial features.
  • The Search and Filter lets you to search by address (when geo-coding is enabled) and filter the features based on attribute values.
  • Use the Publish button to persist the map to your account.

Map Viewer

The Map Viewer is an web application that visualizes the map based on its setting. Each map has a persistent url that can be emailed, bookmarked, or embedded in another application (via iFrame). By default the map resource is returned in its HTML (application) representation, but you can also view the MapJSON behind this application by adding the suffix .json to the request:

http://{host}.mybluemix.net/rest/public/maps/{id}.json
		  

Walkthrough Example

The following steps walk you through a use cases scenario of using the hosted tools to import a dataset from an external source, apply styling and publish the dataset in a mapping application

  1. Select Data-->Fetch From URL> menu option
  2. Type the url of a Load service that serves geojson data. For example, you can try this url: http://tile.openstreetmap.us/vectiles-skeletron/14/4832/6161.json
  3. Select the Styling-->Open Style Configuration menu option, and provide some styling rules. For example you can use the following snippet:
  4. {
       "strokeWidth": {
          "default": {
             "value": 8
          }
       },
       "strokeOpacity": {
          "default": {
             "value": 0.7
          }
       },
       "strokeColor": {
          "default": {
             "attribute": "highway",
             "ranges": [
                "primary",
                "secondary",
                "tertiary"
             ],
             "values": [
                "red",
                "orange",
                "green"
             ]
          }
       }
    }		  
    		  
  5. Use the Search Bar to filter by road type, e.g. type the word "primary"
  6. Select the Vis as a Service menu option, and publish the map
  7. Click on the thumbnail to open the published map

APIs

A set of REST APIs enable developers to create and manage Maps and Layers. A common sequence of using the APIs is as follows:

  1. Create one or more layer resource
  2. (optionally) Create image resources for the map. For example in the case of an indoor image, or needed icons
  3. Create a map resource that references the layers created

The /Proxy api can be used to access datasets and feeds hosted on a different server than the visualization server

The /Geofence api can be used to access query for geospatial data in relation to geofences represented as GeoJSON layers

Click here to view the documentation of the REST APIs

Map Publisher

Map Publisher is a sample appolication that uses the REST APIs to publish maps and layers to the service. You can use map publisher to learn how the APIs work and publish your first map. You can also use traditional HTTP client tools such as command-line cURL or chrome plugni POSTMAN

Download and extract Map Publisher application zip file from this link. The zip file includes sample files that can be used to publish a map with a sample geojson static feed. The starter app also includes a Java program that uses the REST apis to publish the map (and layer).

 usage: java -cp [included-dependant-jars] com.ibm.vaas.samples.MapPublisher
 -apiKey            the apiKey of your account
 -apiKeyPassword    the apiKeyPassword (secret) of your account
 -geojson           the geojson dataset file
 -mapjson           the mapjson map configuraiton file
 -rest              the rest endpoint
 		  	 	
		  	 	
The included batch file can be used also (for Windows)

Note: the service include a public open account that can be accessed w/o credentials by anyone. Use this link to access the public gallery.

Map Configuration (MapJSON)

MapJSON is a declerative json format that is used to define a map and configure its content and behavior. The MapJSON is typically used by applications that need to generate maps via the REST APIs. The documentation of the MapJSON syntax is available here.

Additional advanced rendering and configuration options are documented in the map configuration cheatsheet

Glossary

Map
The map is the central component of a web mapping application. A map contains one or more layers and several controls such as zoom, pan and legend. In addition, the map contains properties such as projection and resolution (zoom levels)
Layers
Layers allows to group elements that need to be rendered on the map. There are two types of layers: base layer and overlays. Base layers are typically imagery layers from different service providers such as Google, Bing, ESRI, OSM, a WMS server, etc. At most there is 1 base layer for a given map which controls some of the map properties such as projection. In addition one or more overlays can be stacked on top of the base layer. A layer can be of two types: raster layer containing an imagery image or tile; and vector layer containing a collection of features from a dataset or data source.
Features
Features can be used to represent something in the physical world. A feature can contain some attributes and one special attribute named geometry for representing the feature's shape. The supported geometries include: Point, LineString, Polygon, and MultiPolygon.
Renderer
A renderer is the component responsible to draw vector layer and its features as graphics in the browser. Different renderers can apply layout, styling, and technology choices to draw a layer in the browser.
GeoJSON
A GeoJSON, is a JSON syntax for representing a collection of features. It is a popular interchange format for geographic features in web programming languages. IBM Interactive Maps for Bluemix supports storing and visualizing vector layers in GeoJSON format
Map Configuration (MapJSON)
Map configuration is a JSON-based configuration of an interactive map application. A MapJSON includes all the specifications needed to instantiate a map application including the map properties and controls, the base map, the layers, renderer and styling options. The MapJSON is a core aspect of the APIs and provides developers a declarative interface to create interactive maps.