2017-06-22 2 views
-1

Ich versuche, eine Karte von einem GPS-Provider zu replizieren, ich kann auf jede Form in der Karte mit einer API zugreifen, aber ich habe Probleme mit der "Corridor" -Form.Zeichnen Sie einen "Korridor" mit Google Maps

Ein Korridor wie ein Polygon ist, aber wenn Sie es ziehen definieren Sie eine Breite (in Metern) und „Klick“ in einigen Punkten für einige „Präzision“:

Corridor config

Wie Sie sehen können, Jede weiße Box ist ein "Klick" und die blaue Linie ist der "Korridor".

Meine Frage ist, wie kann ich es zeichnen? weil ich mit einem Linienzug versucht, aber es nicht wie erwartet funktioniert, wenn ich es verkleinern sieht seltsam:

corridor at this moment

enter image description here

(Was jetzt habe ich)

(wie es sollte aussehen)

Ich denke, ich muss ein Polygon dafür zeichnen, aber ich weiß nicht, wie man die Koordinaten der Kanten berechnet, weil die API nur die Punkte der "Präzision" und der Breite aber keine Ecke zurückgibt Koordinate s.

Einige Ideen?

+0

1. Zeichnen Sie eine Polylinie. 2. Berechnen Sie den Puffer (Polygon) dieser Polylinie mit Rasen. Der Puffer ist dein Korridor. http://turfjs.org/docs/#buffer – Ninjaneer

Antwort

0

Vielleicht können Sie so etwas wie dies versuchen:

poly = new google.maps.Polyline({ 
      strokeColor: '#737CA1', 
      strokeOpacity: 0.5, 
      strokeWeight: 3, 
      map: map, 
}); 

Das Gewicht kann für Ihre bevorzugte Breite eingestellt werden.

auch versuchen, den Kreis zu entfernen, wie in dieser Antwort vorgeschlagen: removing-a-google-maps-circle-shape

circle.setMap(null); 
+0

Ich versuchte Polylinien, aber der Kreis, den Sie sehen, ist eine Polylinie mit herauszoomen, sieht aus wie ein Kreis:/deshalb Polylinien funktioniert nicht – FxckDead

0

Ich schlage vor, zwei Koordinaten mit der Hälfte mit einer Trennung von der Mitte in jede Richtung versetzt zu berechnen und ihnen senkrecht Lager von Mittellagern geben, mit sphericalutil-Bibliothek von Google Maps, dann fügen Sie alle diese Punkte auf ein Polygon in der richtigen Reihenfolge und Sie erhalten ein Polygon mit einer festen in Bezug auf eine Mittellinie.

Verwandte Themen