How to display WGS 1984 Web Mercator (Auxiliary Sphere) services in Google Earth?

5417
1
Jump to solution
12-09-2013 07:04 AM
JonathanBailey
Occasional Contributor III
The basemap services provided by Esri (on ArcGIS Online, Data and Maps for Sever, and the Data Appliance for ArcGIS) use the WGS 1984 Web Mercator (Auxiliary Sphere) spatial reference (WKIDs 102100 or 3857). When they're displayed in Google Earth, they don't line up correctly (see attached). In fact, if I display a service in Google Earth from my own ArcGIS Server instance, I can often get Google Earth to crash.

[ATTACH=CONFIG]29679[/ATTACH]

Older versions of ArcGIS Online services, such as the ESRI_Imagery_World_2D service, use WGS 84 (WKID 4326) as the spatial reference, and these are projected correctly in Google Earth.

How can I get services that use WKID 3857 to project correctly in Google Earth?
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
WilliamCraft
MVP Regular Contributor
The problem here is that the tiling schemes between WKID 4326 and WKID 3857 are different; that is, the cached tiles differ between them in terms of tile width/height, scale thresholds at which the tiles were generated, X and Y origin, units, and technically even the coordinate system properties.  To be specific, one example here is that the WKID 4326 uses decimal degrees and WKID 3857 uses meters.  Another example here is that, if you look at the technical differences between these two WKIDs, you'll see they are inherently different despite the fact that they are so similar:

WKID 4326
ArcCatalog projection definition for "WGS 1984 Web Mercator.prj"

Name: GCS_WGS_1984_Major_Auxiliary_Sphere
Angular Unit: Degree (0.017453292519943299)
Prime Meridian: Greenwich (0.000000000000000000)
Datum: D_WGS_1984_Major_Auxiliary_Sphere
  Spheroid: WGS_1984_Major_Auxiliary_Sphere
    Semimajor Axis: 6378137.000000000000000000
    Semiminor Axis: 6378137.000000000000000000
    Inverse Flattening: 0.000000000000000000


WKID 3857
ArcCatalog projection definition for "WGS 1984 Web Mercator (Auxiliary Sphere).prj"

Name: GCS_WGS_1984
Angular Unit: Degree (0.017453292519943299)
Prime Meridian: Greenwich (0.000000000000000000)
Datum: D_WGS_1984
  Spheroid: WGS_1984
    Semimajor Axis: 6378137.000000000000000000
    Semiminor Axis: 6356752.314245179300000000
    Inverse Flattening: 298.257223563000030000


I've read recently that Google Earth doesn't always have the best reproject capabilities.  Sometimes it works, sometimes it doesn't.  Clearly in the case of WKID 3857, it doesn't.  The only way I can really think of to "reproject" the WKID 3857 service to display correctly in Google Earth would be to reproject is intentionally by re-publishing it in your ArcGIS Server instance locally.  In other words, cascade the service... which is not only unsupported by Esri but also unpleasant in terms of visual quality and draw time performance.  In the case of doing this, you would add the external WKID 3857 service into a map document and then alter the data frame to be WKID 4326 before publishing the map document.

View solution in original post

1 Reply
WilliamCraft
MVP Regular Contributor
The problem here is that the tiling schemes between WKID 4326 and WKID 3857 are different; that is, the cached tiles differ between them in terms of tile width/height, scale thresholds at which the tiles were generated, X and Y origin, units, and technically even the coordinate system properties.  To be specific, one example here is that the WKID 4326 uses decimal degrees and WKID 3857 uses meters.  Another example here is that, if you look at the technical differences between these two WKIDs, you'll see they are inherently different despite the fact that they are so similar:

WKID 4326
ArcCatalog projection definition for "WGS 1984 Web Mercator.prj"

Name: GCS_WGS_1984_Major_Auxiliary_Sphere
Angular Unit: Degree (0.017453292519943299)
Prime Meridian: Greenwich (0.000000000000000000)
Datum: D_WGS_1984_Major_Auxiliary_Sphere
  Spheroid: WGS_1984_Major_Auxiliary_Sphere
    Semimajor Axis: 6378137.000000000000000000
    Semiminor Axis: 6378137.000000000000000000
    Inverse Flattening: 0.000000000000000000


WKID 3857
ArcCatalog projection definition for "WGS 1984 Web Mercator (Auxiliary Sphere).prj"

Name: GCS_WGS_1984
Angular Unit: Degree (0.017453292519943299)
Prime Meridian: Greenwich (0.000000000000000000)
Datum: D_WGS_1984
  Spheroid: WGS_1984
    Semimajor Axis: 6378137.000000000000000000
    Semiminor Axis: 6356752.314245179300000000
    Inverse Flattening: 298.257223563000030000


I've read recently that Google Earth doesn't always have the best reproject capabilities.  Sometimes it works, sometimes it doesn't.  Clearly in the case of WKID 3857, it doesn't.  The only way I can really think of to "reproject" the WKID 3857 service to display correctly in Google Earth would be to reproject is intentionally by re-publishing it in your ArcGIS Server instance locally.  In other words, cascade the service... which is not only unsupported by Esri but also unpleasant in terms of visual quality and draw time performance.  In the case of doing this, you would add the external WKID 3857 service into a map document and then alter the data frame to be WKID 4326 before publishing the map document.