[Talk-de] Meter zu Pixel Umrechnung?

bernhard zwischenbrugger bz at datenkueche.com
So Jul 3 23:13:31 UTC 2011


On 2011-07-03 16:58, Paul Hartmann wrote:
> On 07/03/2011 12:35 PM, bernhard zwischenbrugger wrote:
>> Hallo allerseits
>>
>> Ich bastle gerade am Vector styling für die khtml.maplib und möchte die
>> Linienbreite auch
>> per Meter definieren können. Dazu brauche ich jetzt eine Formel:
>>
>> var faktor=meterToPixel(zoomlevel,lat);
>> var lineWidth=faktor*meter;
>>
>> Kann mir da jemand einen Tipp geben?
>>
>> liebe Grüße
>>
>> Bernhard
>
> Ich würde sagen
>
> meterToPixel = (1 << zoomlevel) * 256 / ( 2 * PI * 6378137 * cos(lat)).
>
> (Der Skalierungsfaktor für EPSG:3857 nach Meter (in der Realität) ist 
> cos(lat). Ein Slippy-Map Tile ist 256 px breit. Es gibt pow(2, 
> zoomlevel) Stück davon in einer Richtung, welche dann der Länge des 
> Erdäquators entspricht.)
>
Schaut gut aus.
So habe ich das jetzt im Javascript:

         var pixelPerMeter=Math.pow(2,zoom) * 256 / ( 2 * Math.PI * 
6378137 * Math.cos(lat));

Da ich auch nonInteger Zoomlevel habe, ist das mit dem bitoperator nicht 
möglich.

Wie die Bildschirm Auflösung ist, das ist mir egal - es muss nur gleich 
wie die Bitmap layers sein.

lg, Bernhard




> Gruß, Paul
>
>
> _______________________________________________
> Talk-de mailing list
> Talk-de at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de





Mehr Informationen über die Mailingliste Talk-de