Four New Bing Maps V7 Modules

In September of 2011 Bing started the Bing Maps v7 Module CodePlex Project. The purpose of this project is to create a single place where developers can find and share useful modules that expand the functionality of the Bing Maps V7 API. Currently, there have been 10 modules submitted to the project. With a number of new modules in development, it’s safe to say that this project is definitely worth looking into. Today I would like to highlight the four newest modules added to this project.

Point Based Clustering Module

Download here

Bing created this module based on feedback received around the Client Side Clustering Module that  created some time ago. The older client side clustering module uses a grid based algorithm which is fast, but requires re-clustering the data every time the map moved. This allows for 5000+ pushpins to be clustered in a fraction of a second but often results in pushpins jumping around the map as you pan. The point based algorithm prevents pushpins from overlapping and jumping around by only clustering the data when the zoom level changes. Additionally this module keeps track of clustered information for each zoom level, making the algorithm faster the more you use it. This improved UI experience does affect performance and as such this algorithm is recommended for 2000 or less pushpins. Interested in reading more about how this algorithm was created? Check out this blog post.

GPX Parser

Download here

Bing created this module due to a number of requests that had received for such a module. This module allows you to easily pass in a URL to a GPX file and have it parsed into an EntityCollection which you can then render on Bing Maps. GPX is a type of XML file that is commonly used by GPS devices. It can be used to describe waypoints, tracks, and routes. Majority of the XML tags for V1 and V1.1 of the GPX schema are supported and all data is stored in a Metadata property, which is added to each entity.

Route Optimization – RouteSavvy Module

Download here

This module was created by OnTerra Systems, a Bing Maps Partner.

In today’s economy, it is more important than ever that companies optimize and manage their supply chains more efficiently. Given today’s fuel costs, product delivery with high quality of service and short delay times is paramount. Distribution accounts for a large proportion of the overall operational costs of a producer. Hence, effective and efficient management of transportation and distribution of goods are becoming increasingly important.

One of the key problems in this process is the optimization of delivery routes to customers. This problem is known as the “Travelling Salesman Problem” (TSP). RouteSavvy is a web service that helps solve this problem.

RouteSavvy is a simple but powerful tool that can take anywhere from 3 or 4 locations to hundreds of locations. It reorders them based on whether you’d like to visit them in a “round-trip” OR as a one-way trip, with the last stop chosen either by you or by the software (whichever is preferred).

Web developers can now easily integrate the RouteSavvy API into their web application by adding the RouteSavvy Map Module. The map module uses Ajax to call the RouteSavvy web service to optimize a given set of locations.

Here is a screen shot of a set random location optimized for a round trip:

Mini-Map Module

Download here

This module was created by OnTerra Systems, a Bing Maps Partner.

The Bing Maps Ajax v7 control doesn’t include support for adding a Mini-Map. The Mini-Map module adds a small map at the right corner of the parent map that’s collapsible and shows the extents covered by the current map. This module adds a mini map at the top right corner of the screen. Mini-map view helps to give a zoomed out overview of your location. Here is a screen shot of the implemented Mini-Map module:

I hope you find these new modules useful!

Bing Maps V7 Modules

The Bing Maps 7.0 Control was released last fall and is a complete rebuild from the ground up when compared to previous versions of Bing Maps. We have seen huge improvements in API performance and the size of the control. One feature of the map control is that it uses a modular framework, which allows you to register and load modular blocks of code as they are needed. This means that you are able to load in features only when they are essential, which results in faster loading speeds. Not only does this allow you to load in additional Bing Maps features and functionalities, but it also opens itself up for custom modules.

image

Creating a custom reusable module allows you to save time when making multiple applications since common blocks of code can be designed to be written so that they can be reused. By making code reusable, development time can be reduced. If the module is properly maintained it will also become better with time as bugs are fixed and optimizations added. But creating and maintaining a collection of modules may be a lot work for a single person.

Let us introduce the Bing Maps v7 Module CodePlex Project. This is a community site where people can share their modules for Bing maps. By having one central location for hosting these modules we make it easier for developers to find them and reduce the need to go searching through blogs for them. To date there are currently 4 modules that have been submitted for inclusion in the portal.

Module Name Description
Client Side Clustering This module allows you to easily add in clustering functionality into Bing Maps simply by using an extended version of the EntityCollection class called ClusteredEntityCollection.
Custom Infobox Control This module generates highly customizable infoboxes.
GeoRSS This module allows you to import GeoRSS files into Bing Maps. This module supports majority of GeoRSS and GML tags.
Simple GeoRSS This is a light weight module that can load a Simple GeoRSS feed to Bing Maps.

This project site also includes information on how to create and submit modules for inclusion in this site. If you have an idea for a module but are not sure where to start, add it to our list of module ideas here.

Android SDK for Bing Maps available on Codeplex

InKnowledge has launched an open-source Bing Maps SDK for Android. This new SDK now gives Android developers a choice in terms of map controls and provides greater flexibility as a result of having direct access to the code base. You can find the SDK at: http://bingmapsandroidsdk.codeplex.com/

Built using the latest Bing Maps AJAX Control 7.0, the Bing Maps Android SDK has all JavaScript wrapped with native Java calls. As a result, Android developers can use this control without having to know the JavaScript code. In addition to wrapping the AJAX Control, we created libraries to make accessing the Bing Spatial Data Services and Bing Maps REST services simple and straightforward.
Initial tests have found that the SDK provides much faster pan/zoom and loading speeds. To see for yourself, download the SDK and run the sample. Or, watch this video to see the SDK in action.

We also extended an Android WebView object, so that the map is embedded along with several Java-based method calls for controlling the map. Touch controls have been added to support pinch-to-zoom and double-tap-to-zoom. The new SDK’s zooming feature provides a deep zoom-like effect, which enhances the user experience as existing map tiles are scaled up until the requested tile is loaded.
The following functionalities have been supported for these services:
Bing Spatial Data Service—Query API:

  • FindNearArea
  • FindByID
  • FindByProperty

Bing Maps REST:

  • Geocoding (address and query searches)
  • Reverse geocoding
  • Routing with support for all route options

In addition, all libraries are inside a base Android application that can be used either as a template or as a reference to create your own Bing Maps Android application. You’ll also find support for GeoRSS feeds.
This SDK is still in its early stages; additional features on the roadmap include:

  • Clustering
  • Documentation of code, and articles on how to use the SDK to create an application
  • Sample UI for Location Details view
  • Support for localization
  • UI controls for rotating Bird’s eye view