Kann mir jemand einen Link (oder einige Details) zum tatsächlichen Verhältnis zu „Zoomstufe“ für Google Maps geben?

zB Google Maps Level 13 = 1: 20000

Kommentare

  • Basierend auf den ersten Informationen, die ich zu dieser Funktion gemacht habe, könnte es vielleicht jemand benutzen! Funktion setZoomLevel (meter) {//console.log(Zoom level set meters: ${meters}); var zoomfactor = 1; if (meter < 1128) {zoomfactor = 15; } else if ((meter > 1128) & & (meter < 2256)) {zoomfactor = 14; } else if ((meter > 2256) & & (meter < 4513)) {zoomfactor = 13; } else if ((meter > 4513) & & (meter < 9027)) {zoomfactor = 12; } else if ((meter > 9027) & & (meter < 18055)) {zoomfactor = 11; } else if ((meter > 18055) & & (meter < 36111)) {zoomfactor = 10; } else if ((meter > 36111) & & (meter < 72

Antwort

Wenn Sie eine Karte entwerfen, die Sie überlagern möchten über Google Maps oder Virtual Earth und Erstellen eines Kachelschemas, dann denke ich, was Sie suchen, sind die Skalen für jede Zoomstufe, verwenden Sie diese:

20 : 1128.497220 19 : 2256.994440 18 : 4513.988880 17 : 9027.977761 16 : 18055.955520 15 : 36111.911040 14 : 72223.822090 13 : 144447.644200 12 : 288895.288400 11 : 577790.576700 10 : 1155581.153000 9 : 2311162.307000 8 : 4622324.614000 7 : 9244649.227000 6 : 18489298.450000 5 : 36978596.910000 4 : 73957193.820000 3 : 147914387.600000 2 : 295828775.300000 1 : 591657550.500000 

Quelle : http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#designing_overlay_gm_mve.htm

Kommentare

  • @capdragon Danke. Das ‚ ist eine bekannte Quelle (ESRI), aber wir fragen uns immer noch, wie sie auf diese Skalen gekommen sind.
  • Rational ist Ich sehe ‚ keine Erwähnung von rational in der Frage. Ich glaube, er möchte eine direkte Antwort auf seine direkte Frage.
  • @ cap Ohne Grund ist es ‚ schwierig oder unmöglich zu unterscheiden eine richtige Antwort von einer falschen. Ohne Grund muss man sich auf die Autorität des Antwortenden verlassen. Ich ‚ bin mir ziemlich sicher, dass der Grund, warum die anderen Antworten in diesem Thread abgestimmt werden und Ihre nicht ‚ ist, wenig damit zu tun hat Korrektheit oder Unkompliziertheit – Ihre ist die maßgeblichste und unkomplizierteste im ganzen Haufen – hat aber alles mit den Argumenten der anderen zu tun. Übrigens habe ich ‚ Ihre nicht herabgestuft.
  • Danke: +1. Ihr seid wahrscheinlich Geographen oder Fernerkundungsgurus. Ich ‚ bin lediglich ein GIS-Entwickler, der dem Mann helfen möchte, seine Antwort zu finden. Ein Kollege von mir (PHD-Typ, Doppel-MIT-Hauptfach) hält jedes Mal, wenn ich ihm eine einfache Frage stelle, eine einstündige Vorlesung und verliert mich dabei. Ich stelle ihm ‚ keine Fragen mehr (ich habe einen Master in Naturwissenschaften). Ich verstehe, dass andere Leute gerne in das Fleisch des Rationalen und so weiter eintauchen, aber viele von uns sind zu unwissend, um zu wissen, wovon sie sprechen. IMHO waren sie verwirrende Antworten, die ‚ seine Frage nicht beantworten.
  • Die Skalen wurden so gewählt, dass sie gleichmäßig durch Rasterkacheln in Basis 2 geteilt werden können , (zB 128, 512 …). Bing macht es ähnlich msdn.microsoft.com/en-us/library/bb259689.aspx

Antwort

Ich fand diese Antwort – geschrieben von einem Google-Mitarbeiter – wahrscheinlich die genaueste:

Dies ist nicht genau, da die Auflösung einer Karte mit der Mercator-Projektion (wie bei Google Maps) vom Breitengrad abhängt.

Mit dieser Formel kann berechnet werden:

metersPerPx = 156543.03392 * Math.cos(latLng.lat() * Math.PI / 180) / Math.pow(2, zoom) 

Dies basiert auf der Annahme, dass der Erdradius 6378137 m beträgt. Dies ist der Wert, den wir verwenden 🙂

entnommen aus: https://groups.google.com/forum/#!topic/google-maps-js-api-v3/hDRO4oHVSeM

Übrigens – Ich vermute, dass:

"latLng.lat()" = map.getCenter().lat() "zoom" = map.getZoom() 

Kommentare

  • WAS entspricht Ihrer Formel? Wenn ich es für lat = 2.92 und Zoom 13 mache, habe ich 19.08. Was ist 19.08 was?
  • @Rodrigo Meter pro Pixel
  • Ich kann bezeugen, dass diese Antwort drei Jahre später immer noch richtig und sehr genau ist. Dies sollte die akzeptierte Antwort sein.
  • Gilt dies nur für x oder auch für y ? Verwendet Google Maps über die Javascript-API für beide Achsen den gleichen Maßstab?
  • @OldGeezer Ja, es funktioniert in alle Richtungen. Die lineare Verzerrung an jedem Punkt in Mercator ist in alle Richtungen gleich. Das ‚ ist einer der Gründe, warum es für rutschige Karten verwendet wird. Wenn Sie weit hineinzoomen, erhalten Sie eine Karte mit relativ geringer Verzerrung. Sobald Sie die Skalierung kompensiert haben, bewirkt dies diese Antwort.

Antwort

Damit Sie die Mathematik besser verstehen (keine genaue Berechnung, sondern nur zur Veranschaulichung):

  • Die Webkartenkachel von Google hat eine Breite von 256 Pixel.
  • Sagen wir Ihre Der Computermonitor hat 100 Pixel pro Zoll (PPI). Das bedeutet, dass 256 Pixel ungefähr 6,5 cm lang sind. Und dass „s 0,065 m .

  • auf Zoomstufe 0 , die gesamten 360 Grad der Länge sind sichtbar in einer einzelnen Kachel . Sie können dies in Google Maps nicht beobachten, da es automatisch auf die Zoomstufe 1 wechselt. Sie können es jedoch auf der Karte von OpenStreetMap sehen (es wird dasselbe Kachelschema verwendet ).

  • 360 Grad am Äquator entsprechen dem Erdumfang von 40.075,16 km, was 40075160 m

  • dividieren 40075160 m Mit 0,065 m erhalten Sie 616313361 , eine Skala der Zoomstufe 0 am Äquator für einen Computermonitor mit 100 DPI

  • Der Punkt ist also, dass die Skalierung vom PPI Ihres Monitors und vom Breitengrad (aufgrund der Mercator-Projektion)
  • für Zoomstufe 1 abhängt Die Skalierung ist die Hälfte der Zoomstufe 0
  • für die Zoomstufe N beträgt die Skalierung die Hälfte f von der Zoomstufe N-1

Überprüfen Sie auch: http://wiki.openstreetmap.org/wiki/FAQ#What_is_the_map_scale_for_a_particular_zoom_level_of_the_map.3F

Kommentare

  • Der Maßstab hängt tatsächlich von der DPI der generierten Kartenbilder ab. Die beiden am häufigsten verwendeten Auflösungen sind 96DPI (das sind ‚, was Google Map-Kacheln sind) und 72DPI.
  • Bei 96DPI ist der Maßstab 591657550.500000 ist gemäß dieser Antwort Stufe 0. Laut @CaptDragon handelt es sich jedoch um Level 1. Ich sollte in Betracht ziehen, ab Level 1 mit Google Maps zu rechnen?

Antwort

Nicht so einfach. In Anbetracht der Projektion hängt die Größe der Kachelpixel vom Breitengrad des Bereichs ab, an dem Sie interessiert sind. In Bezug auf die Umwandlung der Kachelpixelgröße in die Bildschirmpixelgröße hängt dies vom Bildschirm und der Auflösung ab, mit der die Daten angezeigt werden dpi, das Ihr Bildschirm verwendet.

Kommentare

Antwort

Einfach maßgebliche richtige Antwort:

591657550.500000 / 2^(level-1) 

Sie erhalten die obige Tabelle und geben die Zoomstufe ein.

Probieren Sie es live unter jsfiddle.net

Da die Frage nur für Google MAPS und nicht für EARTH gestellt wird, kümmert sich das OP nicht um die 3D-Geometrie. Google Maps sind BEREITS abgeflacht, sodass 1 Pixel immer die gleiche Entfernung (in GRAD, was für eine Google-Karte von Bedeutung ist), hier und im Ecuator wie in den Polen.

Übrigens, haben Sie Beachten Sie, dass irgendwo in der ersten Pixelzeile einer Weltkarte der Maßstab 1: 1 ist?

Kommentare

  • Was bedeutet die Nummer 591657550.500000? repräsentieren?
  • @Sergio warum nicht einfach 591657550.5?
  • “ Die Zahl ergibt sich aus der Kachelauflösung, die auf ein Vielfaches eingestellt ist von 256 Pixel und von der Bildschirmauflösung (96 dpi) “ gis.stackexchange.com/a/111589/ 92997
  • Funktioniert nicht – es hängt vom Breitengrad ab, aber Ihre Formel lautet nicht

Antwort

Eine solche Tabelle befindet sich in der -Dokumentation des Virtal Earth Tile Systems von Microsoft . Wie von GuillaumeC angegeben, hängen die Werte jedoch von der Breitengrad und weiter die Bildschirmauflösung. Die Tabelle enthält Werte, die am Äquator und bei einer Bildschirmauflösung von 96 dpi gemessen wurden.

PS: Ich bin mir nicht sicher, aber die Zoomstufen von Microsoft können im Vergleich zu den Zoomstufen um 1 um 1 verschoben sein Google.Sie verwenden jedoch definitiv dieselbe Projektion, damit die Werte für Google korrekt bleiben.

Antwort

Radius @ Äquator 6.378.137 Meter genau ( WGS-84)

Umfang am Äquator = 40.075.017 Meter (2πr)

Die Zoomstufe 24 verwendet 2 bis 32 Pixel (4.294.967.296) am Umfang.

Äquatorialer Umfang / 2 32 = 0,009330692 Meter pro Pixel

Einheit bei Breite = (Kosinus der Breite) X (Einheit bei Äquator)

Die Zoomstufe verdoppelt jedes Inkrement.

1 Fuß (international) = 0,3048 Meter

Bearbeiten

Nun, es ist zunächst keine legitime Frage. Die Skalierungsverhältnisse beziehen sich auf gedruckte Dokumente, nicht auf Computerbildschirme. Damit diese Bilder mit beliebiger Genauigkeit verwendet werden können, müssen Sie die Abmessung jedes Pixels kennen und das Bild dann entsprechend Ihrer Überlagerung skalieren.

Vor 15 bis 20 Jahren hat jemand WGS- genommen. 84 als Basisdaten. (Beachten Sie, dass in einem früheren Beitrag jemand einen Wert von 40.075.160 verwendet hat. Ich habe dies in Wikipedia an einigen Stellen gesehen und es ist falsch. Der korrekte Wert ist 40.075.017.

Dann haben sie diesen Wert genommen und durch einen vollen Wert geteilt 32-Bit-Ganzzahl. Dies ist eine logische Wahl, da sie eine globale Genauigkeit von etwa einem Zentimeter ergibt, was für Luftbilder ausreichend ist. 32-Bit-Ganzzahlen sind auch effizient zu speichern und zu verarbeiten.

Warum diese Stufe 24 gewählt wurde Ich weiß es jedoch nicht, da jemand anderes hier 0 herausgearbeitet hat, bringt Sie auf eine 256-Pixel-Kachel für die Erde.

Nun ein Beispiel für die Verwendung der obigen Daten. Nehmen wir an, ich habe ein Bild bei Zoomstufe 20 (so gezoomt, wie es derzeit möglich ist) Nehmen Sie 0,009330692 (Zoom 24 am Äquator), verdoppeln Sie es für Zoom 23, erneut für Zoom 22, erneut für Zoom 21 und ein letztes Mal für Zoom 20. Sie sollten jetzt 0,149231071 haben

Nehmen wir nun an, unser Bild befindet sich auf dem 45. Breitengrad. Nehmen Sie den Kosinus davon (0,707106781) und multiplizieren Sie ihn mit unserem 0,149231071, und Sie erhalten 0,105564729 Meter s. Dies ist die Länge und Höhe eines Pixels aus einem Bild bei Breitengrad 45 bei Zoomstufe 20. Wenn Sie ein 1000 x 1000 Pixel großes Bild dieses Bereichs auf dem Bildschirm aufnehmen, beträgt die Abmessung 105,56 Quadratmeter. Wenn Sie möchten, dass die Füße diese 0,3048

teilen. Was Quellen betrifft, habe ich vor ungefähr 5 Jahren einen wesentlichen umgekehrten Ingenieur anhand verschiedener Informationen und Dokumentationen gefunden, die ich im Web gefunden habe, einschließlich der Support-Websites für Google- und MS-Mapping p> Ich habe diese hundert Mal genutzt und sie mit tatsächlichen Feldvermessungsdaten überlagert, und sie waren immer korrekt. Überprüfen Sie es mit den hier angegebenen Tabellen, und die Zahlen stimmen überein.

Kommentare

  • I ‚ Ich bin mir nicht sicher, wie dies die Frage beantwortet.
  • Ich stimme @Devdatta zu. Könnten Sie bitte eine Quelle und einen Kontext angeben.
  • Ich bin mir nicht sicher, ob diese Kommentare vor oder nach dem bearbeiten, aber ich habe diese Antwort verwendet und sie funktioniert hervorragend

Antwort

Ich habe gerade einige Berechnungen durchgeführt und Folgendes erhalten Ergebnisse:

Google Maps zeigt ein 1 km langes Lineal (unten links auf der Karte) mit einer Länge von 90 Pixel bei Zoomstufe 13. Dies bedeutet Folgendes:

Angenommen, die Bildschirmauflösung beträgt 96 dpi oder 36 dpcm, bei Zoomstufe 13 haben wir 0,4 km (von 36/90) in 1 cm, was einen Kartenmaßstab von 1: 40.000 für einen 96 dpi-Bildschirm ergibt.

Für verschiedene Operationen auf dem Bildschirm Am besten nehmen Sie 90px als Basis, da alle Zahlen bei allen Zoomstufen rund sind, dh

  • Zoomstufe 12: 2 km in 90px
  • Zoomstufe l 11: 4 km in 90 Pixel
  • Zoomstufe 10: 8 km in 90 Pixel

und so weiter.

Beachten Sie, dass dies eine Annäherung ist, die sollte Arbeiten Sie mehr oder weniger gut auf kleineren als auf großen Skalen.

(Und Google mag am Ende runde Zahlen …)

Kommentare

  • Wenn Sie genau hinschauen, werden Sie ‚ feststellen, dass sich die Länge der Linie in Abhängigkeit vom Breitengrad des Gebiets ändert, in dem Sie ‚ re view.
  • Dies gilt nur für einen bestimmten Breitengrad, wie @rcoup erwähnt. Nicht nur die Länge der Skalierungsleiste variiert, sondern auch die Entfernung, die sie darstellt. Um dieses Beispiel bei Zoom 13 fortzusetzen, beträgt die durch die Skalierungsleiste dargestellte Entfernung 2 km in Nordkap (71 ° Breite), 1 km um 45 ° Breitengrad und 500 m am Equateur.

Antwort

Basierend auf allen bereitgestellten Informationen Ich habe eine Funktion erstellt, die das beste z auf eine Karte anwendet, wenn Sie eine horizontale Linie haben möchten, die N% der angezeigten Karte darstellt.

Die angezeigte Karte zeichnet sich durch ihre eigene Pixelbreite aus.

 function calculateZoom(WidthPixel,Ratio,Lat,Length){ // from a segment Length (km), // with size ratio of the segment expected on a map (70%), // with a map WidthPixel width in pixels (100px), // and a latitude (45°) we can get the best Zoom // assume earth is a perfect ball with radius : 6,378,137m and // circumference at the equator = 40,075,016.7 m // The full world on google map is available in tiles of 256 px; // it has a ratio of 156543.03392 (px/m). // For Z = 0; // pixel scale at the Lat_level is ( 156543,03392 * cos ( PI * (Lat/180) )) // The map scale increases at the rate of square root of Z. // Length = Length *1000; //Length is in Km var k = WidthPixel * 156543.03392 * Math.cos(Lat * Math.PI / 180); //k = circumference of the world at the Lat_level, for Z=0 var myZoom = Math.round( Math.log( (Ratio * k)/(Length*100) )/Math.LN2 ); myZoom = myZoom -1; // Z starts from 0 instead of 1 //console.log("calculateZoom: width "+WidthPixel+" Ratio "+Ratio+" Lat "+Lat+" length "+Length+" (m) calculated zoom "+ myZoom); // not used but it could be useful for some: Part of the world size at the Lat MapDim = k /Math.pow(2,myZoom); //console.log("calculateZoom: size of the map at the Lat: "+MapDim + " meters."); //console.log("calculateZoom: world circumference at the Lat: " +k+ " meters."); return(myZoom); }  

Antwort

Ich kann noch keinen Kommentar hinzufügen, aber dies ist eine mögliche Quelle für Petes Antwort oben: https://developers.google.com/maps/documentation/javascript/maptypes#MapCoordinates

[…] Beachten Sie, dass jede zunehmende Zoomstufe sowohl in x- als auch in y-Richtung doppelt so groß ist. Daher enthält jede höhere Zoomstufe viermal so viel Auflösung wie die vorhergehende Stufe. Bei Zoomstufe 1 besteht die Karte beispielsweise aus 4 Kacheln mit 256 x 256 Pixel, was zu einem Pixelraum von 512 x 512 Pixel führt. Bei der Zoomstufe 19 kann auf jedes x- und y-Pixel auf der Karte mit einem Wert zwischen 0 und 256 * 2 19

Antwort

Ich habe die Skalen für vier Zoomstufen berechnet:

Zoomstufe | Maßstab 20 1: 500 19 1: 1000 18 1: 2000 17 1: 4000

Es scheint, dass der Maßstab verdoppelt wird, wenn die Zoomstufe um einen Schritt erhöht wird. Ich hoffe also, dass der Maßstab für die Zoomstufe 16 1: 8000 usw. beträgt.

Kommentare

  • Willkommen bei GIS.SE! Können Sie bitte eine Quelle angeben oder wie wurde diese berechnet?

Antwort

Hallo, ich glaube, ich habe das berechnet 1 Pixel = 11,627 km in gerader Linie; ohne Berücksichtigung des Radius der Erde. Hier der Link des Videos, der erklärt, wie: https://www.youtube.com/watch?v=Y3cvTeiMJqE&feature=youtu.be . Hoffe, dass Sie sich klar werden.

Kommentare

  • Dies ist nicht der Fall. Der Wert eines Pixels hängt vom Breitengrad ab.
  • Oh, ich verstehe, nicht der Komplex, in den ich gegangen bin.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.