Ich möchte einen Weg, um eine statische Karte (eine Bilddatei) basierend auf zwei Koordinaten erhalten, die das gewünschte Rechteck oder Bereich darstellen.Kann man mit einer Map-API eine exakte Fläche abrufen?
Vorschläge?
Ich möchte einen Weg, um eine statische Karte (eine Bilddatei) basierend auf zwei Koordinaten erhalten, die das gewünschte Rechteck oder Bereich darstellen.Kann man mit einer Map-API eine exakte Fläche abrufen?
Vorschläge?
Ja. Google hat eine Static Maps-API, die genau dies tut. Es ist im Grunde nur eine URL mit der Breite, Länge und Zoom-Ebene als Parameter übergeben (und eine ganze Menge anderer Variablen). Sie können darüber in der lesen. Hier
ist ein Beispiel dafür, was Sie tun können:
Von der URL:
http://maps.google.com/staticmap?center=40,26&zoom=1&size=150x112&maptype=satellite&key=ABQIAAAAgb5KEVTm54vkPcAkU9xOvBR30EG5jFWfUzfYJTWEkWk2p04CHxTGDNV791-cU95kOnweeZ0SsURYSA&format=jpg
Edit: Wie pro Ihren Kommentar. Der nächste, den ich zu einer quadratischen Form 30,40 Lat 60,70 lng bekommen kann, ist die Mitte 35,65 Zoomlevel 6. Ich habe created an example 400x400 image. ändern Sie einfach den Schlüssel in der folgenden URL Ihr statisches Kartenbild zu erhalten:
http://maps.google.com/staticmap?center=35,65&zoom=6&size=400x400&key=<your key here>&format=jpg
Dank ChrisB für den Hinweis auf die Spanne param (ich hatte nicht gesehen, dass vor). Ich aktualisierte meine example mit der Spanne Version der URL:
http://maps.google.com/staticmap?center=35,65&span=5,5&size=400x400&key=<your key here>&sensor=false
Wie Sie das Beispiel sehen können, dies erzeugt die gleiche Zoomstufe wie die ursprüngliche URL, biete aber einen viel einfacheren Weg dorthin zu bekommen (statt Justierung des Zooms von Hand und Überprüfung der Kanten).
Chris weist darauf hin, dass die Granularität der Zoomstufen nur die Kanten der Karte annähern kann. Wenn Sie eine nähere Näherung benötigen, kann ich nur vorschlagen, die Größe der statischen Imagemap anzupassen, um zu versuchen, näher an Ihre Grenze Breite/Länge zu kommen.
Wenn Sie eine Karte benötigen, die genau in einen bestimmten Bereich passt, ist es unwahrscheinlich, dass Sie das tun können, da die meisten Karten-APIs vordefinierte Zoomstufen haben und wahrscheinlich kein Zoom vorhanden ist Level, mit dem Sie Ihre Umgebung perfekt anpassen können.
Wenn Sie jedoch nur in die Nähe kommen müssen, bietet die Google Static Maps-API eine Methode zum Angeben einer viewport, sodass Sie die Zoomstufe nicht selbst festlegen müssen. Alles, was Sie brauchen, ist der Mittelpunkt und die Spannweite. Wenn Sie das Gebiet von SW (30,70) bis NE (40,60) wollen, wäre das Zentrum (35,65) und die Spannweite wäre (5,5).
http://maps.google.com/staticmap?center=35,65&span=5,5&size=400x400&key=MAPS_API_KEY&sensor=false
Beachten Sie, dass Sie abhängig von der angeforderten Bildgröße unterschiedliche Ergebnisse erhalten.
http://wiki.openstreetmap.org/wiki/MapOf
Dies ist jedoch über
OpenStreetMapVerwenden Sie die OGC WMS GetMap request um ein Bild zu erhalten
Diese page erklärt, wie dieses Bild zu bekommen.Das Bild ist von DEMIS, aber es gibt Tausende von Anbietern gibt, mit WMS-Service
ich DEMIS empfehlen, aber hier sind einige Listen freier WMS-Dienste.
so, wie ich bekomme ich sicherzustellen, dass Sie nur den Bereich zwischen lng 70 lat 40, lng 60 lat 30? – carrier
Sie müssen mit der Zoomstufe herumspielen. Stellen Sie den Mittelpunkt auf lng 75, Lat 35 und stellen Sie dann den Zoom ein, bis Sie mit dem Bild, das Sie zurückbekommen, zufrieden sind. – RedBlueThing
Sie benötigen dazu einen Google Maps-API-Schlüssel (Teil der URL) ... Ich spiele mit dem Zoom herum und sehe, ob ich Ihnen die URL liefern kann, die Sie benötigen. – RedBlueThing