Ich möchte eine geoJSON (Polygon) -Datei in meine Broschürenkarte laden. Ich habe Beispiele gesehen, in denen geoJSON in den Javascript-Code eingebettet ist, aber ich kann keine Beispiele finden, die zeigen, wie es mit einer externen Datei gemacht wird.
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.5/leaflet.css" />
<script src="usStates.geojson" type="text/javascript"></script>
<style>
html, body, #map {
height: 100%;
}
body {
padding: 0;
margin: 0;
}
</style>
</head>
<body>
<div id="map" style="height: 100%"</div>
<script src="http://d3js.org/d3.v2.min.js?2.9.3"></script>
<script src="http://cdn.leafletjs.com/leaflet-0.5/leaflet.js"></script>
<script type="text/javascript">
var map = L.map('map').setView([38.57, -94.71], 4);
L.tileLayer('http://{s}.tile.cloudmade.com/9067860284bc491e92d2342cc51d47d9/998/256/{z}/{x}/{y}.png', {attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> Imagery © <a href="http://cloudmade.com">CloudMade</a>'}).addTo(map);
var featureStyle = {
"color": "#ff7800",
"weight": 5,
"opacity": 0.2
};
L.geoJson(usStates).addTo(map);
</script>
</body>
Antworten:
Schauen Sie in Leaflet-Ajax. Es rationalisiert alles. Ich werde Neogeomat dafür stimmen, dass er es erwähnt.
Holen Sie sich das Skript hier ( Github Repo ) und fügen Sie es Ihrem Header hinzu:
Dann geht es darum, mit dem Dateinamen hochzuladen.
Wirklich unkompliziert zu beheben und es funktioniert. Also ja.
quelle
Sie können jquery Ajax verwenden, um Daten zu laden und anschließend hinzuzufügen.
oder Sie können das Leaflet-Ajax-Plugin verwenden
quelle
Hier ist meine minimale Vanille js Lösung. Sieh ma aus, für einen schnellen Ajax-Aufruf einer Datei ist keine Abfrage erforderlich.
quelle
new
Schlüsselwort für diegeoJSON
Factory-Funktion entfernt, habe jedoch einen CORS-Fehler mit der Zeile setRequestHeader erhalten. Entfernen Sie es, und es hat einwandfrei funktioniert.XML Parsing Error: not well-formed
Fehler anLine Number 1, Column 1:
. Nun, da es sich bei den Daten um Geojson handelt, warum wird versucht, sie als XML zu analysieren? Ich verstehe das Problem nicht, aber ich möchte meine Daten ohne Ajax importieren.Im head-Element verweisen Sie auf Ihre Dateien:
Und dann im Körper:
Sie müssen sie nicht in eine Ebenengruppe "einfügen" ...
quelle
<script src="usStates.geojson" type="text/javascript"></script>
und hinzugefügtL.geoJson(usStates).addTo(map);
. an der Unterseite meines Codes jeder Ideen?Nach dem Hinzufügen
var usStates =
zum Anfang meiner Geojson-Datei funktionierte der Code.quelle