Me gustaría cargar un archivo geoJSON (polígono) en mi mapa de folleto. He visto ejemplos en los que geoJSON está incrustado en el código de JavaScript, pero no puedo encontrar ningún ejemplo que muestre cómo se hace con un archivo externo.
<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>
Respuestas:
Mira en el folleto Ajax. Agiliza todo. Votará a favor de Neogeomat por mencionarlo.
Obtenga el script aquí ( repositorio github ) y agréguelo a su encabezado:
Entonces se trata de cargar con el nombre del archivo.
Corrección realmente sencilla y funciona. Así que
fuente
Puede usar jquery Ajax para cargar datos y luego agregarlos.
o puede usar el complemento leaflet-ajax
fuente
Aquí está mi solución mínima de vanilla js. Mira ma, no se necesita jquery para una llamada rápida ajax a un archivo.
fuente
new
palabra clave para lageoJSON
función de fábrica, pero recibí un error CORS con la línea setRequestHeader allí, así que la eliminé y funcionó bien (debe ser alguna configuración en mi servidor).XML Parsing Error: not well-formed
error enLine Number 1, Column 1:
. Bueno, dado que los datos son un geojson, ¿por qué intenta analizarlos como XML? No entiendo el problema, pero me gustaría importar mis datos sin Ajax.En el elemento head, hace referencia a sus archivos:
Y luego en el cuerpo:
No tiene que "ponerlos" en un grupo de capas ...
fuente
<script src="usStates.geojson" type="text/javascript"></script>
y lo agreguéL.geoJson(usStates).addTo(map);
al final de mi código. any ideas?después de agregar
var usStates =
a la parte superior de mi archivo geojson, el código funcionó.fuente