Für ein kleines Projekt erlaube ich Benutzern, Bereiche zur Datenbank hinzuzufügen. Ihre Anfrage wird an http://nominatim.openstreetmap.org gesendet und ich speichere den Längen- und Breitengrad. Wenn verfügbar, speichere ich auch die geoJSON-Polygon-Umrissdaten.Leaflet.js und komplexe Polygone
Beispiel Ausgang: http://nominatim.openstreetmap.org/search?q=wyoming&format=xml&polygon_geojson=1&addressdetails=1
Dieser umrissenen Bereich wird dann auf einer Karte angezeigt leaflet.js verwenden. Für viele Polygone funktioniert das gut, aber es scheint, dass die Datenmenge, die die Bibliothek verarbeiten kann, begrenzt ist. Einige ziemlich komplexe Bereiche (die einen Longtext zur Speicherung in mysql benötigen) werden einfach nicht angezeigt, ohne dass ein Fehler ausgelöst wird.
Ich denke, meine Frage hat zwei Teile: 1 - Bin ich richtig, dass die großen Datensätze die Wurzel des Problems sind oder sollte flaglet.js mit denen umgehen können? 2 - Was wäre der beste Weg, solche Datensätze zu vereinfachen? Leaflet hat einen solchen Algorithmus zum Anzeigen von Bereichen, aber das scheint bereits der Punkt zu sein, an dem es scheitert.
Und während wir auf dem Thema sind: Im Moment konvertiere ich Nominatims Inglat Polygone zu Faltblättern, indem ich die Daten aufspalte und sie wieder in Javascript zusammenfüge. Gibt es einen einfacheren/sichereren Weg dies zu tun? Soll ich diese Aufgabe lieber auf den Server verschieben und eine PHP-Bibliothek/-Funktion verwenden?
Ich schätze Ihre Hilfe!
Edit: vergessen zu erwähnen: Anlässlich dass das Polygon, meine Konsole gibt mir diesen Fehler zu machen, scheitert: Typeerror: t ist null
Vielen Dank.Es waren fehlerhafte Daten - ich hatte meinen Code nur mit eindimensionalen Polygondaten geschrieben, was in vielen Fällen funktioniert, aber nicht in allen. Wäre wahrscheinlich nicht in der Mitte der 40k Datenpunkte gefunden .. Auch ein guter Tipp mit der -src.js - das wird definitiv nützlich sein. Für jetzt werde ich die vollständigen Datensätze für meinen Prototyp verwenden. Ich muss wieder zum Simplying zurückkehren, sobald die Performance wichtig wird. – asto
Im Zweifelsfall normalisieren Sie alle Ihre Polygone in MultiPolygons mit nur einem Polygon und einem äußeren Ring. Das sollte dazu beitragen, 1-dimensionale Arrays als Polygone zu interpretieren. – IvanSanchez