Re: Polygon projection in CountryData incorrect?
- To: mathgroup at smc.vnet.net
- Subject: [mg116338] Re: Polygon projection in CountryData incorrect?
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Fri, 11 Feb 2011 04:16:38 -0500 (EST)
- References: <iitekr$jj7$1@smc.vnet.net> <ij0e75$9bm$1@smc.vnet.net>
Thanks Heike, this works great indeed.
I'm tempted to consider this a bug as you would expect the projections
to use the same defaults wherever in the system they're used.
Cheers -Sjoerd
On Feb 10, 11:21=C2 am, Heike Gramberg <heike.gramb... at gmail.com> wrote:
> I don't know if it qualifies as a bug, but it seems that the
> coordinates of the vertices of the polygon returned by CountryData[...,
> {"Polygon", "Mercator"}] are in degrees where the point (0,0)
> corresponds to the actual point (lat,lon)=(0,0) whereas the coordinates
> returned by GeoGridPosition[...,"Mercator"] are in radians such that
> the point (0,0) corresponds to the actual point (lat, lon)=(0,-180
> degrees).
>
> I guess one way to match the two coordinate systems is to adjust the
> "Centering" and the "ReferenceModel" properties of the "Mercator"
> projection used in GeoGridPosition, i.e. to use something like this:
>
> Graphics[{{FaceForm[], EdgeForm[Black], =E2=80=A8 =C2 CountryData["Net=
herlands",
> {"Polygon", "Mercator"}]}, Red, =E2=80=A8 =C2 PointSize[0.02],=E2=80=A8=
=C2
> Point@GeoGridPosition[=E2=80=A8 =C2 =C2 GeoPosition[=E2=80=A8 =C2=
=C2 =C2 CityData[{"Amsterdam",
> "NoordHolland", "Netherlands"}, =E2=80=A8 =C2 =C2 =C2 "Coordinat=
es"]], {"Mercator",
> "Centering" -> 0, =E2=80=A8 =C2 =C2 =C2 "ReferenceModel" -> 360/2=
/Pi}][[1]]=E2=80=A8 =C2 }=E2=80=A8 ]
>
> Heike.
>
> On 2011-02-09 07:10:19 +0000, "Sjoerd C. de Vries"
> <sjoerd.c.devr... at gmail.com> said:
>
> > CountryData contains a polygon for every country. It can be output in
> > various projections using a specification like =C2 {"Polygon",
> > "Mercator"}.
>
> > However, the resulting polygon doesn't seem to be consistent with a
> > transformation using GeoGridPosition and GeoPosition.
>
> > If I plot Amsterdam using its CityData coordinates transformed with a
> > Mercator projection it falls outside the Netherland's borders (1st
> > example below). When I use the alternative approach (2nd example)
> > everything seems OK. Am I doing something wrong or is this a bug?
>
> > Graphics[
> > =C2 {
> > =C2 {FaceForm[], EdgeForm[Black],
> > =C2 =C2 CountryData["Netherlands", {"Polygon", "Mercator"}]},
> > =C2 Red, PointSize[0.02],
> > =C2 Point@GeoGridPosition[
> > =C2 =C2 =C2 GeoPosition[
> > =C2 =C2 =C2 CityData[{"Amsterdam", "NoordHolland", "Netherland=
s"},
> > =C2 =C2 =C2 =C2 "Coordinates"]], "Mercator"][[1]]
> > =C2 }
> > =C2 ]
>
> > Graphics[
> > =C2 {
> > =C2 {FaceForm[], EdgeForm[Black],
> > =C2 =C2 Polygon[Map[GeoGridPosition[GeoPosition[#], "Mercator"][[1=
]] &,
> > =C2 =C2 =C2 CountryData["Netherlands", "Coordinates"], {2}]]},
> > =C2 Red, PointSize[0.02],
> > =C2 Point@GeoGridPosition[
> > =C2 =C2 =C2 GeoPosition[
> > =C2 =C2 =C2 CityData[{"Amsterdam", "NoordHolland", "Netherland=
s"},
> > =C2 =C2 =C2 =C2 "Coordinates"]], "Mercator"][[1]]
> > =C2 }
> > =C2 ]
>
> > Cheers -- Sjoerd
>
>