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
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de
_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de