9
$\begingroup$

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".

$\endgroup$

1 Answer 1

9
$\begingroup$

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

$\endgroup$
5
  • $\begingroup$ When working with a tile server, does the "Projection" suboption of GeoServer need to be also adjusted for working in another projection? $\endgroup$ Commented Aug 7, 2015 at 22:44
  • 1
    $\begingroup$ 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. $\endgroup$
    – jose
    Commented Aug 7, 2015 at 22:52
  • 1
    $\begingroup$ By default Yandex returns tiles in the ellipsoidal Mercator projection. How can I tell MMa this? $\endgroup$ Commented Aug 7, 2015 at 22:56
  • $\begingroup$ 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"]}]. $\endgroup$ Commented Aug 7, 2015 at 23:03
  • 4
    $\begingroup$ 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. $\endgroup$
    – jose
    Commented Aug 8, 2015 at 1:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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