Designing a map to overlay Google Maps or Bing Maps

Release 9.3.1 E-mail This Topic Printable Version Give Us Feedback

ArcGIS Server 9.3 includes JavaScript extensions to the Google Maps and Microsoft Virtual Earth APIs. If you will use these extensions to overlay your map on Google Maps or Bing™ Maps (formerly Microsoft Virtual Earth), follow this workflow when you create your map:

Author the map

You'll originally create the map in ArcMap by adding data and symbolizing it appropriately. When designing your map, you need to use the same coordinate system and scales used by Google Maps and Bing Maps.

Change the coordinate system to WGS 1984 Web Mercator

The first thing you should do when designing the map is change the data frame coordinate system to the same one used by Google Maps and Bing Maps, which is WGS 1984 Web Mercator. To change the coordinate system, follow these steps:

  1. Right-click the data frame name (default is Layers) in the ArcMap table of contents and click Properties.
  2. Click the Coordinate System tab.
  3. Click Predefined > Projected Coordinate Systems > World > WGS 1984 Web Mercator, then click OK.

Note: If the geographic coordinate system of your source data does not use the WGS 1984 datum or the GRS80 ellipsoid, you may need to apply a transformation to your data in order for it to align correctly with Google Maps and Bing Maps. NAD83 is an example of a geographic coordinate system that uses the GRS80 ellipsoid. Examples of geographic coordinate systems that do not use the WGS 1984 datum or the GRS80 ellipsoid include NAD27, ED 50, and others. See ESRI Knowledge Base Article 34749 for instructions on performing the transformation.

Design at the Google Maps and Bing Maps scales

Users of your map will see it at the scales used by Google Maps and Bing Maps, so you should only design your map at those scales. But how do you know what those scales are?

You can load the Google Maps and Bing Maps scales into ArcMap's dropdown list of scales by doing the following:

  1. Copy this text file gmaps_ve_scales.txt to a location that you can easily remember. (The link here is provided for simplicity. The file is originally installed in the Help directory of your ArcGIS Server instance. Example: C:\Inetpub\wwwroot\ArcGIS\Manager\Help\gmaps_ve_scales.txt)
  2. Open ArcMap and add some data.
  3. Click the dropdown list of scales and click Customize This List.
  4. Click Load.
  5. Browse to the gmaps_ve_scales.txt file mentioned in Step 1 and click Open.
  6. Click OK to apply your changes and dismiss the dialog box. You can now see all of the Google Maps/Bing Maps scales and easily jump between them using the dropdown.

You only need to design your map to look good at the scales at which it will be cached. If you do not plan on caching your map at the larger scales, you do not need to do any design work at those scales.

Set scale ranges on your layers so that just the right amount of data and labels are visible at each scale, symbolized appropriately. When setting your scale ranges, avoid toggling layers on and off at or near the scales at which you are designing.

You may need to make copies of your layers so that you can symbolize them differently at various scales. The ArcMap table of contents can contain multiple copies of a layer, each with its own symbology and scale ranges. To copy a layer, right-click it in the ArcMap table of contents and click Copy. Then right-click the data frame name and click Paste Layer(s).

Publish the map as a service

After you've finished authoring your map document (.mxd), you need to publish it as an ArcGIS Server map service before you can use it in your JavaScript application. One of the easiest ways to do this is to right-click the map document in ArcCatalog and click Publish to ArcGIS Server.

Learn more about publishing a GIS resource to the server.

Create a map cache

One of the reasons that Google Maps and Bing Maps are so fast is that they use server-side map caching, meaning that predrawn images of the map are stored on the server so that you can quickly request them through a URL. With ArcGIS Server, you can create a similar cache for your map. Creating a map cache is recommended for optimum performance with all APIs and is required if you are using the ArcGIS JavaScript Extension for Virtual Earth.

The Map caches section contains much detail about planning, creating, and updating map caches. There are several ways to create a cache, but the following steps are essential:

  1. Right-click the service in ArcCatalog and click Service Properties.
  2. Click the Caching tab and choose to draw the map "Using tiles from a cache that you will define below".
  3. Click "Load tiling scheme from" and choose Microsoft Virtual Earth / Google Maps from the dropdown list.
  4. If necessary, change the Cache directory.
  5. Click Create Tiles. The caching tool appears with many values already filled in.
  6. Uncheck any scales for which you do not want to create the cache. If your map covers a big area and will not be viewed at large (zoomed-in) scales, you should uncheck the large scales.
  7. Set the update mode to Recreate All Tiles and click OK. The tool then creates the tiles.

Depending on how big your map is and the scales you've selected, it could take a long time to create all of the tiles. See Planning a map cache to learn about factors that influence cache creation time. This topic also explains how storing your cache on a disk formatted with a small cluster size may help you avoid wasting disk space.

Once you've finished creating the cache, you're ready to use your map with Google Maps or Bing Maps. See Developing with ArcGIS Server: An Overview to learn how you can develop JavaScript applications that overlay your maps with Google Maps and Bing Maps.