Zum Sortieren von array-Elementen durch Länge Breite Abstand in javascripts?
Ich bin mit folgenden JSON-array mit 6 Standorten. Gibt es eine Möglichkeit, diese Art, basierend auf Längen-und Breitengrad, an dem Orte in der Nähe, als Nächstes kommen in das array?
[
{"id" : 279, "longitude":79.853239,"latitude":6.912283},
{"id" : 284, "longitude":79.865699,"latitude":6.885697},
{"id" : 13, "longitude":79.851187,"latitude":6.912220},
{"id" : 282, "longitude":79.858904,"latitude":6.871041},
{"id" : 281, "longitude":79.853346,"latitude":6.899757},
{"id" : 16, "longitude":79.854786,"latitude":6.894039}
]
Sortieren kann begonnen werden erste Element und das Ergebnis sollte so etwas wie dieses
[
{"id" : 279, "longitute":79.853239,"latitude":6.912283},
{"id" : 13, "longitute":79.851187,"latitude":6.912220},
{"id" : 281, "longitute":79.853346,"latitude":6.899757},
{"id" : 16, "longitute":79.854786,"latitude":6.894039},
{"id" : 284, "longitute":79.865699,"latitude":6.885697},
{"id" : 282, "longitute":79.858904,"latitude":6.871041}
]
- In der Nähe zu was?
- wenn das erste item id=279 nächste Element des Arrays sollte am nächsten ersten (In diesem Fall ist es die id=13). dann sollte es b nächste id=13
- Also, wenn Sie die Sortierung nach der Entfernung von einander, wie würden Sie wählen, welche ist erste und welche die Letzte?
- Als erste element können wir erste Element, und dann basierend auf diesem Artikel können wir Sortieren weiter posten. Wie ich oben erklärt, wenn erste Element ist id=279, dann die nächste, denn das wird das zweite Element die id=13, dann das Dritte Element sollte nächste id=13.
- So erstellen Sie ein array beginnt mit
0
und jedes nächste element enthält eine Entfernung von 1. element für jedes weitere
Du musst angemeldet sein, um einen Kommentar abzugeben.
Problem gelöst, indem ein weiteres Attribut, genannt Distanz. Verwendet folgende Funktion zur Berechnung der Distanz zwischen zwei Punkten
Dann berechnet die Distanz für jedes Element im array durch die Verwendung der obigen Funktion. Dann array sortiert nach Entfernung.
Du könntest in einer Schleife durch das array, und verschachteln Sie eine weitere Schleife, findet die nächste ein.
Dies setzt Voraus, dass das erste im array ist eine Referenz, dass das, was kommt als Nächstes wäre der nächste Punkt, und so weiter.
Jemand anderes suchen, um dies zu tun, wenn Sie den Längen-und Breitengrad verfügbar, können Sie einfach Sortieren, Linear auf ein einfaches Linien-Diagramm wie folgt Aussehen. dies wird Ihnen eine rise/run-linear-Ergebnis.
Ausgabe sollte wie die Grafik unten und Sie können optimieren Sie Ihre Werte mit den negativen und positiven, um verschiedenen Winkeln und Richtungen.