Interactive Mapping Blog

Mapping Solutions News

Mar 18

Quake sequence leading up to Japan tsunami

icon March 18th, 2011 by Brian Norman

We always say that displaying data on a map is one of the best ways to bring information to life, especially when the information has a geographical element. One obvious place where this is true is when looking at the pattern of earthquakes. Bing Maps Silverlight Earthquake MapThe US Geological Survey publishes a list of recent earthquakes. However, a list doesn’t show the patterns or relationships in the same way that displaying this data on a map will.

 

Which is why, given recent events in Christchurch and Japan in particular, we have done just this – embedded USGS’s earthquake data in a Bing Map using Silverlight technology to create a mapped sequence of earthquakes between 7th and 11th March 2011 as recorded by USGS).

 

In the sequence you can clearly see the build up of earthquakesJapan in the northern part of the Ring of Fire along the Aeultian Islands starting from the 7th of March 2011.

 

As well as watching the sequence of events from 7th to the 14th of March 2011, you can experience the last seven days earthquakes or just the last one:

Last seven days of earthquakes in mapped sequence

Last day of earthquakes in mapped sequence

For a more detailed view of the locations experiencing major earthquakes during this period watch our video of the sequence.

Mar 16

In the second part of our series we show you how to upload the xml data you created in part 1 using a simple console application.

The next and final part in this series will show you how to create a simple JavaScript map application that displays data from the Bing Maps Spatial Data Services.

We will release the full source code for these series as soon as the last part is complete.

Mar 12

clip_image001

Introduction

Twitter is a great service that has given the average person in the street a way to share his opinions and criticism of just about anything with the world. Receiving accurate and well thought out criticism is one of the best ways for companies to improve their products and services, at Earthware we have learnt a lot over the years by listening to what others think about what we do and trying to improve in those areas.

The problem with the two points above is that too often Twitter’s instant availability and it’s 140 character limit has made us all a bit lazy when sharing our opinions and criticism and made us tend to exaggerate or generalise our feedback.

The aim of this blog article is to explore this problem a little further, specifically relating to the opinions and criticism we see shared about two of the most popular mapping platforms Bing Maps and Google Maps.

Comparing apples & pears

Its often difficult to compare two things that arrive at very similar results but from different directions. As a simple example of this lets compare the following two cars:

clip_image002

Both of these are great sports cars and the result of talented engineers and designers but when comparing individual characteristics they are very different and it would be too easy to suggest one of them is much better than the other.

For example let’s compare the top speeds of both, without a doubt the Ferrari is by far the fastest almost 100% faster. However if we compare the emissions of both the Tesla Roadster, being electric, is by far the best performer (assuming you charge it from a zero emission source) and blows the Ferrari away.

If we say one car is better than the other, because one or more characteristic is better, does that mean the other car “sucks”? I think we can agree that’s not true, it’s just that one car or the other will suit the owner depending on what criteria they see as most important to them.

Bringing this back to the world of mapping hopefully you can see how untrue it is to say that one mapping platform “sucks” compared to another if you are only comparing one feature, for example road mapping styles.

Comparing building materials vs. the builder

So if it’s difficult to compare two products by only looking at one, or two, characteristics, or only those that apply to one person’s needs, how about comparing two products that set out to create the same result but one is clearly better? Again let’s compare two cars:

clip_image003

If someone offered you either of these cars for FREE I’d be surprised if anyone would take the Skoda. Skoda are not exactly know for creating the best build quality or the most stylish cars in the world (they are known for their value but we are talking about a free car). VW however are well known for their quality and reliability and have some stylish cars. Both these cars are created from the same raw materials in fact some models share the same engine and some of the same parts so why is the VW Golf a much more popular car, winning many more awards?

It’s a combination of factors potentially including the time spent building and designing the car, the quality of the tools used to build them and the talent of the engineering and design teams involved.

Brining this back to the world of mapping this means it’s often difficult for consumers to differentiate between how well a website has implemented and designed their mapping vs. how good the mapping platform they are using actually is.

Too often at Earthware we see users complaining about Google Maps or Bing Maps when actually it’s that the site they are using the maps on has either not spent enough time implementing their maps or their development team doesn’t have much experience creating mapping applications.

Taking a closer look at some common mapping criticisms

Here at Earthware we think both Google Maps and Bing Maps are great mapping platforms and we have used both of them in a variety of client’s mapping projects depending on which one fitted the client’s needs better at the time.

However both platforms are not identical, they have some features in common and some very different. Both platforms have areas in which they are better than the other for some, or all, of the specific client needs. Below are some of the more common criticisms we see and some insight into why these features may differ / ‘are perceived as better’ in one platform or the other.

  • Bing maps road map/labels suck

    Recently Bing maps have released a new style for their road maps which have received some praise, and a lot of negativity. Why would Bing change their road map style to something that some people don’t like as much as their old style? Surely there is a reason or do they just not care?

    Digging a little deeper we can start to find the answer, and an angle that suggests Bing Maps may actually be on to something for that is actually better than Google for some uses. Bing actually spent a lot of time and money, and worked with some great talent at Stamen, to produce this new style, but they were aiming for a different goal than Google.

    Bing’s goal for the redesign was to help mapping developers, like Earthware, showcase their data on maps without the bright and colourful maps taking over the show. The new ‘muted’ colour scheme makes it easier for users to concentrate on pushpins and data shown on top of the map. The downside of this is that consumers who are trying to read the labels and roads on the map, without much or any extra data being shown, are now arguably finding it more difficult to read.

    So many peoples perception is that Bing Maps road style ‘sucks’ compared to Google’s. Hopefully you may now see that it does indeed ‘suck’… if you are using it in one particular situation.

  • Bing/Google maps aerial imagery suck

    Another common complaint is that the aerial imagery available is much better in one platform than the other. The problem here is that it may indeed be worse on Google than Bing but is that just in the town/city/country you are interested in? Elsewhere in the world you will often find a different story.

    Also, you will often find it has a lot to do with when you are comparing them, Bing and Google release imagery at completely different times and have very different plans for when and where to take aerial imagery. You may find Google is better this month, but then Bing release more up to date imagery at the same location a month later.

    Again it’s perhaps easier now to understand why it’s not perhaps not a fair comparison of an entire mapping platform’s coverage if you are just focusing on where you want aerial imagery.

  • Bing/Google birdseye/streetview is much better

    Users are often amazed by Bing’s birdseye imagery, or Google’s street view imagery and judge the other platform as ‘sucking’ because they either don’t have birdseye/streetview or don’t have the same coverage worldwide. 

    Both birds eye and streetview imagery are brilliant experiences and are useful in different circumstances. For example when searching for a new house streetview really gives you a clear indication of what the front of house looks like as well as the roads around the house. Birdseye however lets you see what the entire area looks like including the back garden and nearby parks. Both are useful if different ways and neither ‘suck’ compared to the other.

    The other common comparison we hear is the coverage Google have in streetview vs. the birdseye coverage Bing have. With Google having streetview over huge areas of Europe and North America it’s easy to think Bing’s Bird’s eye coverage of only major metropolitan areas in these countries is not as impressive an achievement. However consider the following as it might start to seem less of a valid comparison:

    1. Streetview can be taken on any day it doesn’t rain/snow, birdseye can only be taken on cloudless days
    2. Streetview is taken using any normal car, Birdseye is taken from a plane. Costs and laws applying to the use of these two is vastly different.
    3. Streeview required specialist cameras but they are nowhere near as expensive as the cameras and lenses required to take imagery from a plane.
    4. Capturing an entire city in streetview only captures the streets and the areas visible from the street, a small fraction of what birdseye captures with every square metre of the city.
    5. Streetview does not have to combine as many images, taken at different times, from different angles and heights. The sheer processing involved in producing quality aerial imagery let alone birdseye imagery is vast in comparision.

  • TheWebsiteIUse.com’d new maps ‘suck’ because they have moved from Bing/Google to Google/Bing

    Lastly we often hear complaints from regular users of various websites when that website changes the mapping platform they use. Their complaints are usually a combination of the following factors:

    1. They were used to how the old mapping worked, no one likes change
    2. TheWebsiteIUse.com has not implemented all the features of the new mapping platform, or has implemented them in a worse way often because they try and replace like with like rather than creating a mapping experience that works best with the new platform.
    3. The new mapping platform doesn’t offer the same quality of imagery in their locations as the old platform. However it may now be vastly superior in other regions or the new platform brings ‘different’ types of imagery or data like birdseye or OS maps in the UK.

Enough preaching, what are we trying to say?

Maybe you found our blog today, or read it regularly, or someone sent this article to you after you expressed your opinion on a mapping platform. However you came to read this article, we hope it has inspired you to think a little more about giving a mapping opinion or criticism online. If you have just tweeted, emailed, blogged something maybe you would like to go and add more detail, or suggestions, to your comment and maybe even target it at someone who will gladly receive your feedback and have the power change things?

Why not share your new clearer opinion or criticism with the right people, so try the following twitter accounts in your tweet or tweet the website or product that you are using the maps on.

@bingmaps, @googlemaps, @mapquest, @openstreetmap, @ovimaps, @earthware

Mar 9

Yesterday, we were delighted to be invited to present at a workshop event held at Microsoft’s Victoria offices in London to an audience of approximately 60 people who were interested in exploring how Bing Maps can help them drive their business results.

The audience was a good mix of technical and non technical people representing many industries and specialisms with many of them looking at how to manage a migration from the Multimap APIs and MapPoint Web Services to services and APIs offered by Bing Maps.

We really hoped that the day would both demonstrate some of the “art of the possible” in mapping but also allow plenty of time for individual companies to ask specific questions and explore the challenges specific to their own situation.

The speakers included:

Steve Frost (Microsott) – Chair

Idit Gazit-Berger (Microsoft) – Introducing Bing Maps

Johannes Kebeck (Microsoft) – Integrating Bing Maps

Rod Plummer (Shoothill) – Getting the best out of Bing Maps

Neil Osmond & Brian Norman (Earthware) & Miranda Munn (NovaLoca)

- The Art of the Possible in Bing Maps

Mark Finch (Grey Matter) – Licensing

Philip Bull (Microsoft) – Bing Maps and Windows Azure

Alex Montgomery and Hayley Bass (Microsoft) – Bing Maps and Microsoft Dynamics CRM

In our session we were delighted to be joined by Miranda Munn, Founder and MD of NovaLoca (one of our most successful clients) who demonstrated how we had helped her use mapping to drive her business at multiple stages of its growth.  We were also delighted to be able to demo the new NovaLoca Windows Phone 7 app that we have developed that is due for release very soon.

In case you would be interested, we wanted to share the slides and the links (most images are links) on our blog.  Please see below for the slides:

Presentation on 8th March 2011 on Multimap & Bing Maps
Feb 28

Recently Bing Maps have released an update to their Spatial Data Services REST API that allows you to upload and query your own spatial data. In this first part of our new video series we will be showing you how to get your data ready to be uploaded into the service. Following video tutorials will show you how to upload your data then demonstrate how to query your data using a simple javascript map.

Feb 22

In the last six months, both Bing Maps and Google Maps have released new versions of their AJAX map controls. In this blog article we will compare the performance of each platform when displaying an increasing number of pushpins.

As this test is greatly affected by the browser you are using, we are using the latest (at the time of testing), non-beta, version of each of the major browsers. We have tested Bing Maps version 7, Bing Maps version 6.3 and Google Maps 3 allowing us to compare both the progress of the Bing Maps platform and the Google Maps platform.

The test conducted recorded how long it takes to add 1, 10, 100, 500 and 1000 pushpins to the map. Whilst plotting 1,000 pushpins on the map is probably not a sensible idea from a usability point of view, it does help demonstrate how well each platform reacts under pressure.

image

image

image

These charts clearly demonstrate that Bing Maps version 7 is a significant improvement in performance over its predecessor and in addition is also significantly faster than Google Maps version 3 when showing over 100 pushpins. It clearly demonstrates that irrespective of the browser, the performance order of the mapping platforms is consistent with Bing Maps version 7 outperforming the other versions in the test (and especially so in Chrome 5.0).

One aspect these test results do not demonstrate is the that we noticed that there is a considerable delay between the time the platform says that it takes to complete the task, and when the user actually sees pushpins appear on the map. Whilst this is true for Bing Maps it is considerably worse in Google Maps.

What do these results show?

Although the performance factor compared in this tests is not the only performance factor worthy of consideration (see our previous article on download size for another), these results are clearly indicative of relative performance. If performance is a key factor when choosing a mapping platform, these results would certainly indicate that the recent commitment by the Bing Maps development team to improve performance means that Bing Maps appears to lead the way in AJAX mapping platforms compared with Google Maps .

Try these tests for yourself

If you want to try the map data loading tests for yourself on your own machine the source code is available to download at http://mapperftests.codeplex.com

Dec 24

Tracking Santa in Google Earth

icon December 24th, 2010 by Brian Norman

We love this kind of thing but for today only you can track Santa delivering his presents in Google Earth. As I write at 13:15 GMT I can see him whizzing around Lae, Papua New Guinea and he is already up to 16.5 million presents delivered.

There are two major views to this implementation, the first being on landing at a destination you can see Santa whizzing around (see below):

Santa2

and the second is tracking Santa and his reindeers tracking across the sky in real time to his next destination (see below):

Santa1

 

Whilst at Earthware we try and avoid interactive mapping gimmicks, if there is a day when a gimmick can be allowed it has to be Christmas Day.  I am certainly going to go home and show this to my 3 and 4 year old children so they can get excited.

Well done to everyone involved in creating this fun Google Earth implementation and if you are still able to see it then you can view Santa’s journey at Norad Santa – track Santa delivering Christmas presents in Google Earth.

Dec 10

Almost a year ago we wrote an article about the download speeds and sizes of the competing map apis, as part of a series comparing the Ajax APIs for Google Maps and Bing maps, since then a lot has changed.

Google have updated their offering with the depreciation of Google Maps ver 2 and the continued development of Google Maps ver 3 focusing on smaller download sizes and support for mobile devices. Bing Maps meanwhile in the last 12 months have released one minor version (6.3) and one major version (7) of their map control.

So its time to see if things have changed since last time, when Google Maps took the crown for initial download size. We will be testing both the old versions of the APIs and the new versions to show what progress has been made by both companies.

Download Size

This test will just measure the download size of any javascript, image and css required to get a basic map loaded. It will ignore the map imagery itself as that can vary so much on different locations and is probably best left for another article.

image

As you can see some interesting things have happened in the last 10 months:

  1. Google Maps Ver 3 has grown considerably from our last test when it less than 50k. Now at 88kb as they have added more of the features originally missing from the first releases of ver 3.
  2. Bing Maps 6.3c “core” control is a great improvement on the full 6.3 clocking in at 76kb. Its also smaller than either of the Google Maps controls
  3. Bing Maps 7 has obviously had a complete rebuild as it now clocks in at 65kb, the smallest of any of the map controls, but at what price?

Digging a Little Deeper

The updated results are very interesting, but they do not really tell the whole story as all the new APIs have a few gotchas, and tricks up their sleeves.

Bing Maps 6.3 “core”

The new lite version of the Bing Maps 6.3 API is a great improvement for those looking for fast loading maps and it is now pretty comparable to Google Maps, however this comes at a cost. The core version can only be used for the most basic of pushpin maps and does not contain support for things like routing, geocoding or polygons (amongst other things). You can get a better idea of what exactly is supported here on MSDN.

Google Maps Ver 3

The new version of Google Maps, ver 3, also has a slightly misleading trick up its sleeve, but a very welcome one. The initial download size is one of the best of the fully featured API’s however it doesn’t tell the full story.

Google have very cleverly made their API modular allowing you to add one script reference but it to dynamically load other scripts if your code requires them. This means for a very simple ‘pushpin on a map’ example as we tested here very little code is required so the download is very small. However load a more complex example like this and quickly the javascript size grows to 471kb. If you have a complex map, requiring lots of functionality its very likely Google Maps ver 3 will get near to the size of the Bing Maps ver 3 download size.

So Google have come up with a great little trick for loading their map API for which they should be congratulated. Its the best of both worlds really, you get a nice fast loading map when your requirements are simple, and a slower experience when you need all the bells and whistles. Although you get a similar experience with the Bing Maps 6.3 and 6.3 core versions its no where near as clever or seamless to integrate.

Bing Maps 7

Similar to the previous 6.3 core control, the Bing Maps 7 control is also a little lite on features, for example there is no geocoding, routing, popup boxes and some controls are less feature rich than before for example the pushpin control no longer accepts html content.

There are some new features though including much better mobile support and multi-touch support for i0S devices.

Bing Maps 7 also seems to feature some kind of modular framework, although currently only splitting the control into 2 files. We hope to see the Bing team follow Google’s lead and add the missing features (that were in 6.3) into the ver 7 control using a modular on-demand approach especially for the map popup control.

Summing it all up

So both API’s have made some great improvements to their  initial download sizes. Bing have released a two great versions of their API and now hold the smallest download crown, and Google have implemented some clever loading on demand technology. We will leave it to you to decide if initial loading size is an issue for your application and there are certainly different choices to make depending on the functionality you require.

Come back soon to see our next article comparing the speed of the API’s at various common tasks.

Oct 20

We have been working behind the scenes with Bing’s PR agency 3-Monkeys, on an official Microsoft Bing Maps community event for the UK and you can now sign up to attend next Wednesday 27th October. Here’s the intro:

“Bing invites you to an informal panel discussion and Q&A to hear the latest from Bing Maps UK and how it has been working with leading digital partners to deliver improved map services for consumers and develop innovative mapping solutions for many high profile clients. This is your chance to hear from our expert panel of mapping specialists, who will discuss the latest in mapping technologies and be on hand to answer your questions. “

For full details of who is talking, other than Brian Norman our resident Bing Maps MVP, please see the event site where you can sign up:

http://bingmapsuk.eventbrite.com

Oct 10

Using Jquery with the Bing Maps REST API

icon October 10th, 2010 by Brian Norman

In the last few months Bing Maps have released a new version of the web services (previously available as SOAP). This new version uses the increasingly popular REST format which for the first time allows us to use these services direct from javascript on the clients browser.

If you are creating rich, client side applications, using Jquery then these new REST APIs are a great way to do various mapping related tasks without having to load data from your own server side code. In this article we will show you a simple example of geocoding (finding a physical geographical location from its address or name) using Jquery and the Bing Maps REST API.

Getting started

To get started you need to create a simple HTML page and have the Bing Maps REST API reference site open for the location service  (http://msdn.microsoft.com/en-us/library/ff701715.aspx).

The first thing we need to do is add the script reference to the latest version of Jquery, in this case we are loading it from the Google CDN.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" >
  3. <head>
  4.     <title>Bing Maps REST with Jquery</title>
  5.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  6. </head>
  7. <body>
  8.  
  9. </body>
  10. </html>

 

Now we need to add a textbox for the user to type their location in, and a button to submit the user request.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" >
  3. <head>
  4.     <title>Bing Maps REST with Jquery</title>
  5.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  6. </head>
  7. <body>
  8.     <label for="myaddress">Type an address:</label>
  9.     <input type="text" id="txtAddress" />
  10.     <input type="button" id="btnSearch" value="Find Location" />
  11. </body>
  12. </html>

 

Now we need to add somewhere to display the results of our query.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" >
  3. <head>
  4.     <title>Bing Maps REST with Jquery</title>
  5.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  6. </head>
  7. <body>
  8.     <label for="myaddress">Type an address:</label>
  9.     <input type="text" id="txtAddress" />
  10.     <input type="button" id="btnSearch" value="Find Location" />
  11.     <p id="results"></p>
  12. </body>
  13. </html>

 

Wiring things up

Now we have the basic page created we need to start using Jquery to wire everything up. Lets start by adding the basic jquery to wire up a click event to the button on page load. For the sake of readability we will miss out most of the HTML in the snippet below.

  1. <script type="text/javascript">
  2.     $(document).ready(function () {
  3.         $("#btnSearch").click(function () {
  4.             
  5.         });
  6.     });
  7. </script>

now comes the clever bit, we need to use Jquery’s getJSON method to request the location information from the Bing Maps REST API for the address the user has entered. The getJSON method is pretty simple and has the following signature:

jQuery.getJSON( url, [ data ], [ callback(data, textStatus) ] )

url – A string containing the URL to which the request is sent.

data – A map or string that is sent to the server with the request.

callback(data, textStatus) – A callback function that is executed if the request succeeds.

So the code to call the Bing Maps REST API to query the location of an non-structured address using the following url

http://dev.virtualearth.net/REST/v1/Locations/query?key=BingMapsKey

You’ll notice you will need to put your own Bing Maps key into the url which you can get from http://www.bingmapsportal.com/. Here is the code we need to make the call in Jquery.

  1. $(document).ready(function () {
  2.     $("#btnSearch").click(function () {
  3.         //check user has entered something first
  4.         if ($("#txtAddress").val().length > 0) {
  5.             //send location query to bing maps REST api
  6.             $.getJSON('http://dev.virtualearth.net/REST/v1/Locations?query=' + $("#txtAddress").val() + '&key=YOURBINGMAPSKEY&jsonp=?', function(result) {
  7.                 alert("got a result");
  8.             });
  9.         }
  10.         else {
  11.             $("#results").html("please enter an address");
  12.         }
  13.     });
  14. });

 

The important parts to notice are how we construct the call to Jquery’s getJSON method. The first parameter to the call is the url to load json data from, in this case we are building the url string up to include the value the user has entered in the textbox.

The critical part of this url is the addition of the “&jsonp=?” to the end of the url, this allow jquery to create a proxy allowing your code to make a cross domain call to a different url than the one the page is running on. Without this javascript would not be able to make the call to the Bing Maps REST API. The “?” is where jquery does its magic and behind the scenes wires up your success callback code (the second parameter) and the callback that is sent to the Bing Maps REST API.

As we just mentioned the second parameter is the function you want to be called when the result successfully comes back.For now this code will just show an message box but now to actually read in the data.

Reading the data returned

The data returned by the location service is quite complex and its easier to explore using a tool like firebug (the firefox plugin) or IE or chromes built in javascript debuggers. Here is a screen shot of what the data looks like returned from this call.

bingmapsreturned

As you can see you may get more than one “resources” object back if your address could match more than one place in the world. In this example we will just use the first result returned, but in real life you would want to present the user with a list of the possible options to choose from.

So the last bit of code to check if we have a result, and then write out the latitude and longitude of the location is as follows.

  1. $(document).ready(function () {
  2.     $("#btnSearch").click(function () {
  3.         //check user has entered something first
  4.         if ($("#txtAddress").val().length > 0) {
  5.             //send location query to bing maps REST api
  6.             $.getJSON('http://dev.virtualearth.net/REST/v1/Locations?query=' + $("#txtAddress").val() + '&key=YOURBINGMAPSKEY&jsonp=?', function (result) {
  7.                 if (result.resourceSets[0].estimatedTotal > 0) {
  8.                     var loc = result.resourceSets[0].resources[0].point.coordinates;
  9.                     $("#results").html('latitude:' + loc[0] + ', longitude:' + loc[1]);
  10.                 }
  11.                 else {
  12.                     $("#results").html("sorry that address cannot be found");
  13.                 }
  14.             });
  15.         }
  16.         else {
  17.             $("#results").html("please enter an address");
  18.         }
  19.     });
  20. });

Summary

This simple example has hopefully shown you just how easy it is to call the Bing Maps REST webservices using Jquery, and just how little code is required for a completely cross browser solution.

To try it out for yourself, download the code using the link below and add your own bing maps key

.butdownloadcode[1]