[英]I'm inserting placemarks in leaflet map with jQuery. But when I try to insert the placemarks by clicking a link it gives me error
我得到的錯誤是“未捕獲的錯誤:地圖容器已經初始化。”
函數 placethemarks() 使用另一個函數 pullJson() 加載數據,該函數通過單擊相應的鏈接來划分我想要在地圖上可視化的數據。 我該如何解決這個錯誤?
$(window).load(function(){
var element = $('#mapPage');
element.height(element.height() - 42);
var map = L.map('map').setView([44.493889, 11.342778], 13);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png',
attributionControl = false).addTo(map);
});
function placethemarks(){
var jsondata = pullJsonData();
var marker_art = new Array();
var marker_museum = new Array();
for(var a in jsondata){
var tipocat = jsondata[a].type;
if(tipocat=='artwork') {
storeCoordinate(jsondata[a].geometry.coordinates[0], jsondata[a].geometry.coordinates[1], marker_art);
}
else if(tipocat == 'arts_centre'||tipocat == 'museum' ) {
storeCoordinate(jsondata[a].geometry.coordinates[0], jsondata[a].geometry.coordinates[1], marker_museum);
}
}
var marker_array = [];
for (var i = 0; i < marker_art.length; i++) {
var x = marker_art[i].x;
var y = marker_art[i].y;
var arr = [y,x];
marker_array.push(arr);
}
for(var i = 0; i < marker_array.length-1; i++){
new L.marker(marker_array[i]).addTo(map);
}
}
我最終通過簡單地將我必須添加的 Leaflet 地圖添加到代碼中解決了這個問題。 現在,當我單擊按鈕時,我看到地標已添加到地圖中。 Hese是代碼:
<div id = "butt">
<button type="button" onClick = placeTheMarks()>Place The Marks!</button>
</div>
<script>
function placeTheMarks(){
// I take the data from another page
var json = JSON.parse(window.sessionStorage.getItem('response'));
var marker_art = new Array();
var marker_museum = new Array();
for(var a in json){
var tipocat = json[a].type;
if(tipocat=='artwork') {
storeCoordinate(json[a].geometry.coordinates[0], json[a].geometry.coordinates[1], marker_art);
}
else if(tipocat == 'arts_centre' || tipocat == 'museum' ) {
storeCoordinate(json[a].geometry.coordinates[0], json[a].geometry.coordinates[1], marker_museum);
}
}
var marker_array = [];
for (var i = 0; i < marker_art.length; i++) {
var x = marker_art[i].x;
var y = marker_art[i].y;
var arr = [y,x];
marker_array.push(arr);
}
for(var i = 0; i < marker_array.length-1; i++){
new L.marker(marker_array[i]).addTo(map);
}
}
var map = L.map('map').setView([44.7215826, 10.624086], 12);
L.tileLayer("http://a.tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution: 'Map data© OpenStreetMap contributors'
}).addTo(map);
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.