Gostaria de carregar um arquivo geoJSON (polígono) no meu mapa de folhetos. Eu já vi exemplos em que o geoJSON está incorporado no código javascript, mas não consigo encontrar nenhum exemplo mostrando como isso é feito com um arquivo 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>
Respostas:
Olhe para o Leaflet-Ajax. Ele simplifica tudo. Vai desistir de votar em Neogeomat por mencioná-lo.
Obtenha o script aqui ( repo do github ) e adicione-o ao seu cabeçalho:
É uma questão de fazer o upload com o nome do arquivo.
Correção realmente direta e funciona. Então, sim.
fonte
Você pode usar o jquery Ajax para carregar dados e adicioná-los.
ou Você pode usar o plugin leaflet-ajax
fonte
Aqui está a minha solução mínima de baunilha js. Olha ma, não é necessário jquery para uma chamada rápida de ajax para um arquivo.
fonte
new
palavra - chave para ageoJSON
função factory, mas recebi um erro CORS com a linha setRequestHeader, removi-a e funcionou bem (deve haver alguma configuração no meu servidor).XML Parsing Error: not well-formed
erro emLine Number 1, Column 1:
. Bem, como os dados são geojson, por que eles estão tentando analisá-los como XML? Não entendi o problema, mas gostaria de importar meus dados sem o Ajax.No elemento head, você faz referência aos seus arquivos:
E então no corpo:
Você não precisa "colocá-los" em um grupo de camadas ...
fonte
<script src="usStates.geojson" type="text/javascript"></script>
e o adicioneiL.geoJson(usStates).addTo(map);
ao final do meu código. idéias?depois de adicionar
var usStates =
ao topo do meu arquivo geojson, o código funcionou.fonte