[OSM-dev] 0.6
Martijn van Oosterhout
kleptog at gmail.com
Wed May 7 07:18:42 BST 2008
On Wed, May 7, 2008 at 12:08 AM, Iván Sánchez Ortega
<ivan at sanchezortega.es> wrote:
> El Martes, 6 de Mayo de 2008, Martijn van Oosterhout escribió:
> > Given a set of closed rings that don't cross you can unambiguously
> > draw a polygon with it.
>
> False. Counter-example: coastline.
>
> Given a complete set of coastline polygons (e.g. VMAP0), and somehow removing
> the clockwiseness of them, please have your computer tell me if Australia is
> either an island or a lake.
Actually, given VMAP0 polygon's don't wrap at 180 degrees, it really
isn't that hard. That's why we use VMAP0 without difficulty for
lowzoom levels. Pick a point in Australia, determine how many polygons
it is in. Odd=land, even=sea.
If you wanted to be smart you need one reference point, say (0,0)=sea
and work it out from there using a line crossing algorithm. I actually
wrote code like that but coding the coastline checker was far more
interesting and challanging (delete 1% of segments randomly, now
decide what is land/sea!).
Yes, I suppose it's a nice coincidence that our projection makes it
impossible to draw a polygon and accedently say everything except this
is foo, but I don't have a problem with taking advantage of that.
Have a nice day,
--
Martijn van Oosterhout <kleptog at gmail.com> http://svana.org/kleptog/
More information about the dev
mailing list