Ich bin kein englischer Muttersprachler so bitte die Fehler nichts dagegen;)Import GeoJSON Daten auf einem Beiblatt Karte von Überführung Turbo origanated
Ich möchte eine Karte machen, wo Sie Hofläden und Milchverkaufs finden Maschinen für Menschen, die ihre Bauern vor Ort unterstützen wollen. Ich fand heraus, dass diese Dinge in den OSM-Daten mit den Tags shop=farm
und amenity=vending_machine selling:milk
gefunden werden können. Mit diesen Informationen können Sie problemlos eine Abfrage auf http://overpass-turbo.eu erstellen und als JSON-Datei exportieren. Ich habe "osmtogeojson" verwendet, um diese Daten in GeoJSON zu konvertieren und habe ein kleines Testsample als "test.geojson" in meinem Hauptordner gespeichert. Ich auch heruntergeladen leaflet.ajax.min.js
und legte es in meinem Hauptordner. Jetzt möchte ich diese lokale GeoJSON-Datei in eine Leaflet-Map importieren. So, hier ist meine Situation:
Mein Kopfbereich sieht wie folgt aus: (so ziemlich alles ist eine Kopie von den Tutorials auf leafletjs.com und Stack-Überlauf)
<link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" />
<script src="/leaflet.ajax.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-07I2e+7D8p6he1SIM+1twR5TIrhUQn9+I6yjqD53JQjFiMf8EtC93ty0/5vJTZGF8aAocvHYNEDJajGdNx1IsQ==" crossorigin=""/>
<script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-A7vV8IFfih/D732iSSKi20u/ooOfj/AGehOKq0f4vLT1Zr2Y+RX7C+w8A1gaSasGtRUZpF/NZgzSAu4/Gc41Lg==" crossorigin=""></script>
Jahr Dies ist (der wichtige Teil von die JavaScript):
var geojsonLayer = new L.GeoJSON.AJAX("test.geojson");
geojsonLayer.addTo(map);
EDIT: Hier ist eine Live-Demo: https://stefang.cepheus.uberspace.de/farmshops/ Sie können meine /test.geojson Datei dort finden.
Weiß jemand, was hier schief gelaufen ist?
Weniger wichtig JS Teil (aus den Kommentaren im Auftrag von OP importiert):
var mymap = L.map('mapid').setView([49.013, 8.40], 10);
L.tileLayer('api.tiles.mapbox.com/v4{id}/{z}/{x}/{y}.png?access_token=<TOKEN>', {
maxZoom: 18,
attribution: 'Map data © <a href="openstreetmap.org">OpenStreetMap</a>; contributors, ' + '<a href="creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</…;, ' + 'Imagery © <a href="mapbox.com">Mapbox</a>';,
id: 'mapbox.streets'
}).addTo(mymap);
Willkommen bei SO! Wenn Sie sagen "Es gibt keine Fehler", meinen Sie, Sie haben Ihre Browser-Konsole überprüft? Die Reihenfolge, in der die Skripte geladen werden, ist seltsam. – ghybs
Danke, das war hilfreich. Ich muss nein sagen, habe ich nicht. Ich dachte, jeder Fehler verursacht einen Fehlerdialog. Aber die Browser-Konsole hilft mir sehr, ich denke, ich muss das Objekt zuerst initialisieren. Der Fehler ist: TypeError: geojsonLayer ist undefined – Stefan
Ich gebe zu, ich hätte einen anderen Fehler vorher erwartet: "L ist undefined" oder etwas ähnliches, wegen Ladens Leaflet.ajax Plugin vor Leaflet? – ghybs