When working on the answer to this question I found that GeoGraphics seemingly uses by default the Spherical Mercator projection (also known as "Web Mercator") which is used by such geoservices as Google Maps, OpenStreetMap and Wikimapia:

EPSG:3857 - WGS 84 / Pseudo-Mercator (Spherical Mercator, Mercator on Sphere)

Unlike them such geoservices as Yandex Maps and Kosmosnimki.ru use the Elliptical Mercator projection:

EPSG:3395 - WGS 84 / World Mercator (Elliptical Mercator, Mercator on Spheroid)

Is it possible to work in the Elliptical Mercator projection with GeoGraphics?

P.S. NGA Advisory Notice on "Web Mercator".

up vote 8 down vote accepted

Yes, it is possible to use the ellipsoidal Mercator projection by specifying an ellipsoidal "ReferenceModel" in the projection.

To compare, let me define a spherical Mercator projection:

In[1]:= webMercator = {"Mercator", "ReferenceModel" -> GeodesyData["ITRF00", "SemimajorAxis"]}
Out[1]= {"Mercator", "ReferenceModel" -> Quantity[6.37814*10^6, "Meters"]}

and then an ellipsoidal Mercator projection:

In[2]:= ellipMercator = {"Mercator", "ReferenceModel" -> "ITRF00"}
Out[2]= {"Mercator", "ReferenceModel" -> "ITRF00"}

We can create the respective maps:

In[3]:= webmap = GeoGraphics[{FaceForm[], EdgeForm[Red], Polygon[{Entity["Country", "UnitedKingdom"], Entity["Country", "Ireland"]}]}, GeoProjection -> webMercator, GeoBackground -> None];

In[4]:= ellipmap = GeoGraphics[{FaceForm[], EdgeForm[Blue], Polygon[{Entity["Country", "UnitedKingdom"], Entity["Country", "Ireland"]}]}, GeoProjection -> ellipMercator, GeoBackground -> None];

Finally we display them together, to show the difference between using the projections:

In[5]:= Show[webmap[[1]], ellipmap[[1]]]

enter image description here

  • When working with a tile server, does the "Projection" suboption of GeoServer need to be also adjusted for working in another projection? – Alexey Popkov Aug 7 '15 at 22:44
  • 1
    The "Projection" suboption of GeoServer specifies in which projection are the tiles originally, typically (web)"Mercator". Then the GeoProjection option of GeoGraphics specifies in which projection you want to have the produced map. GeoGraphics will take both projections into account to make the conversion from the former to the latter. – jose Aug 7 '15 at 22:52
  • 1
  • Here is an example of working with the Yandex tile server (tiles are positioned incorrectly): GeoGraphics[GeoServer->{StringTemplate["http://vec0<*Mod[#2+#3,5]*>.maps.yandex.net/tiles?l=map&x=`2`&y=`3`&z=`1`&lang=en-US"]}]. – Alexey Popkov Aug 7 '15 at 23:03
  • 4
    Right now the "Projection" suboption of GeoServer must be either (web) "Mercator" or "Equirectangular". Support for arbitrary projections, including ellipsoidal Mercator, will be added in the future. – jose Aug 8 '15 at 1:40

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.