7. High Performance
Renders 10x more data
Developer Friendly
Less code needed to
write your app
Feature Rich
Lots of new features
that align based on
developer feedback
Web API features (V8)
14. Core Features
• Upload and host data. Expose as a spatial REST service
• Access administrative boundaries from Bing Maps
• Batch geocoding & reverse geocoding
New Features
• Upload KML and Shapefiles as data sources
• Automatically reprojects Shapefiles to WGS84
Spatial REST Service
• Find Nearby, Find Along a Route, Find by Bounding Box,
Intersection search, Find by Property
• Point of Interest, Traffic, US Census data and much more
15.
16. function getNearByLocations() {
var sdsDataSourceUrl =
'http://spatial.virtualearth.net/REST/v1/data/f22876ec257b474b82fe2ffcb8393150/NavteqNA/NavteqPOIs';
//Create a query to get nearby data.
var queryOptions = {
queryUrl: sdsDataSourceUrl,
spatialFilter: {
spatialFilterType: 'nearby',
location: map.getCenter(),
radius: 5
},
filter: new Microsoft.Maps.SpatialDataService.Filter('EntityTypeID', 'eq', 5540) //Filter for Gas Stations.
};
//Process the query.
Microsoft.Maps.SpatialDataService.QueryAPIManager.search(queryOptions, map, function (data) {
//Add results to the layer.
layer.add(data);
});
}
17.
18. Before: Too many Points of Interest! After Isochrone API: Just show me Jobs within a 15 minute drive
Demo: https://www.microsoft.com/en-us/maps/isochrone
19. //Create the REST isochrone query URL.
var url = 'https://dev.virtualearth.net/REST/v1/Routes/Isochrones?&optimize=time&travelMode=driving';
//Use the center of the map as the waypoint for the isochrone.
var center = map.getCenter();
url += '&waypoint=' + center.latitude + ',' + center.longitude;
//Set the max time parameter for the isochrone query in minutes.
url += '&timeUnit=minute&maxTime=' + document.getElementById('driveTime').value;
//Make call to get the polygon
var http = new XMLHttpRequest();
http.open("GET", url, true);
http.onreadystatechange = function () {
if (http.readyState == 4 && http.status == 200) {
//Request was successful, do something with it.
var result = JSON.parse(http.responseText);
}
}
20. var pins = pinLayer.getPrimitives();
//Using spatial math find all pushpins that intersect with the drawn search area.
var intersectingPins = Microsoft.Maps.SpatialMath.Geometry.intersection(pins, searchArea);
//Now you can iterate through IntersectingPins and highlight them on the map or anything else you wish
21. Business Reverse Geocode API
• Returns business(es) at specified coordinate
• Intelligent – Time of day, popularity…
Address of
the
location
Businesses
at the
location
31. var map = new Microsoft.Maps.Map(document.getElementById('myMap'), {});
Microsoft.Maps.loadModule('Microsoft.Maps.GeoXml', function () {
var layer = new
Microsoft.Maps.GeoXmlLayer('https://bingmapsv8samples.azurewebsites.net/Common
/data/kml/SampleKml.kml');
map.layers.insert(layer);
});
32. var polygon = new Microsoft.Maps.Polygon([new Microsoft.Maps.Location(47.614032,22.318040),
new Microsoft.Maps.Location(47.614032, -122.317438),
new Microsoft.Maps.Location(47.613661, -122.317438),
new Microsoft.Maps.Location(47.613661, -122.318040)], {
fillColor: "rgba(255,255,0,0.2)", strokeColor: 'orange’,
strokeThickness: 5, strokeDashArray: [1, 2, 4, 4]});
map.entities.push(polygon);
33. (www.ohgo.com) – Public facing app and site that allows OH drivers get real-time traffic updates, personalized
route notifications, can view live traffic cameras and get accurate delay times.
34. // Creating sample Pushpin data within map view
var pushpins = Microsoft.Maps.TestDataGenerator.getPushpins(1000, map.getBounds());
var clusterLayer = new Microsoft.Maps.ClusterLayer(pushpins, { gridSize: 100 });
map.layers.insert(clusterLayer);