J'aimerais charger un fichier geoJSON (polygone) dans la carte de la brochure. J'ai vu des exemples où geoJSON est intégré au code javascript, mais je ne trouve aucun exemple montrant comment faire avec un fichier externe.
<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>
Réponses:
Regardez dans Leaflet-Ajax. Cela rationalise tout. Donnera un vote positif à Neogeomat pour l'avoir mentionné.
Obtenez le script ici ( github repo ) et ajoutez-le à votre en-tête:
Ensuite, il suffit de télécharger avec le nom du fichier.
Correctif vraiment simple et ça marche. Alors oui.
la source
Vous pouvez utiliser jquery Ajax pour charger des données, puis les ajouter.
ou Vous pouvez utiliser le plugin leaflet-ajax
la source
Voici ma solution minimum vanilla js. Look ma, pas besoin de jquery pour un rapide appel ajax vers un fichier.
la source
new
mot - clé pour lageoJSON
fonction factory, mais une erreur CORS avec la ligne setRequestHeader s'y trouve, donc supprimez-le et tout a bien fonctionné (il doit y avoir un paramètre défini sur mon serveur).XML Parsing Error: not well-formed
erreur àLine Number 1, Column 1:
. Eh bien, puisque les données sont un geojson, pourquoi essaie-t-il de les analyser en XML? Je ne comprends pas le problème, mais j'aimerais importer mes données sans Ajax.Dans l'élément head, vous référencez vos fichiers:
Et puis dans le corps:
Vous n'êtes pas obligé de les "mettre" dans un groupe de calques ...
la source
<script src="usStates.geojson" type="text/javascript"></script>
et ajoutéL.geoJson(usStates).addTo(map);
au bas de mon code. any idéesaprès avoir ajouté
var usStates =
au sommet de mon fichier geojson, le code fonctionnait.la source