Mehr

Faltblatt-Polygon an die angegebene Position verschieben

Faltblatt-Polygon an die angegebene Position verschieben


Ich habe einen Kreis und ein Polygon, die ich an die lokale Position des Benutzers verschieben möchte. Ich habe es geschafft, den Kreis latLng zu verschieben, aber ich finde keine Möglichkeit, dasselbe mit einem Polygon zu tun.

Kann mir bitte jemand helfen?


Aufbauend auf dem, was @ghybs vorschlägt, ist hier etwas Javascript, um die Position eines Benutzers zu ermitteln und ein Polygon (in diesem Fall ein Dreieck) so zu übersetzen, dass es auf die Position des Benutzers zentriert wird

Geige hier

var map = L.map('map').setView([0,0], 5); L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png">

Sie wissen, dass ein Kreis in Leaflet durch eine eindeutige LatLng-Koordinate + Radius definiert wird, während ein Polygon aus mehreren LatLng-Koordinaten besteht.

Deshalb ist es trivial zu sagen "der Kreis ist bei diese LatLng-Position". Und es ist trivial, diesen Kreis auf eine Benutzerposition zu zentrieren.

Aber wir haben viele Optionen für das Polygon: Wie sollen wir seine "Position" berechnen, da es definiert ist durch viele LatLng-Koordinaten?

Wenn Ihr Polygon bereits um die Position [0, 0] herum definiert ist, können Sie alle seine Scheitelpunkte (d. h. alle seine LatLng-Koordinaten) um die Benutzerposition verschieben.

Andernfalls müssen Sie einen "Mittelpunkt" wählen (der trivialste wäre der Schwerpunkt / Schwerpunkt seiner Scheitelpunkte), damit Sie die Differenz mit der Benutzerposition berechnen können, dann alle Polygon-Scheitelpunkte wie oben um diese Differenz verschieben.


Schau das Video: I Quit Drinking Alcohol For 30 Days.. Heres What Happened