如何在谷歌地图上加载多个marker
发布网友
发布时间:2022-04-30 19:35
我来回答
共1个回答
热心网友
时间:2022-04-25 14:28
以下是代码,初次加载可以,定时刷新后标注没法更新
var markerArr;
var markers = new Array();
//获取站点的初始信息(地理位置)
//var markerArr;//标注点数组
function getMarkers(){
$.ajax({
type : "post",
url : "servlet/InTime",
async : false,
success : function(result){
markerArr = result;
}
});
}
function addMarker() {
for(var i = 0;i<markerArr.length;i++){
var json = markerArr[i];
var p0 = json.longitude;
var p1 = json.latitude;
markers[i] = new BMap.Marker(new BMap.Point(p0, p1), {
// 指定Marker的icon属性为Symbol
icon: new BMap.Symbol(BMap_Symbol_SHAPE_POINT, {
scale: 0.6,//图标缩放大小
fillColor: json.signal,//填充颜色
fillOpacity: 1//填充透明度
}),
title : json.name
});
var label = new BMap.Label(json.name+"最新时次:"+json.datetime, {
"offset" : new BMap.Size(10, -20)
});
label.setStyle( {
borderColor : "#808080",
color : "#333",
cursor : "pointer"
});
markers[i].setLabel(label);
label.hide();
map.addOverlay(markers[i]);
(function(){
var index = i;
var _marker = markers[i];
_marker.addEventListener("mouseover", function(){
this.getLabel().show();
this.setAnimation();
});
_marker.addEventListener("mouseout", function(){
this.getLabel().hide();
});
_marker.addContextMenu(createMenu(i,_marker));
})()
}
}
//获取站点的初始信息(地理位置)
getMarkers();
//向地图中添加marker
addMarker();
function runAddmarkers(){
var allOverlay = map.getOverlays();
for(var i=0;i<allOverlay.length;i++){
if(allOverlay[i].toString()=="[object Marker]"){
map.removeOverlay(allOverlay[i]);
}
}
$.ajax({
type : "post",
url : "servlet/InTime",
async : true,
success : function(result){
alert(result.length);
markerArr = result;
}
});
for(var i = 0;i<markerArr.length;i++){
var json = markerArr[i];
var p0 = json.longitude;
var p1 = json.latitude;
var marker = new BMap.Marker(new BMap.Point(p0, p1), {
// 指定Marker的icon属性为Symbol
icon: new BMap.Symbol(BMap_Symbol_SHAPE_POINT, {
scale: 0.6,//图标缩放大小
fillColor: json.signal,//填充颜色
fillOpacity: 1//填充透明度
}),
title : json.name
});
var label = new BMap.Label(json.name+"最新时次:"+json.datetime, {
"offset" : new BMap.Size(10, -20)
});
label.setStyle( {
borderColor : "#808080",
color : "#333",
cursor : "pointer"
});
marker.setLabel(label);
label.hide();
map.addOverlay(marker);
(function(){
var index = i;
var _marker = marker;
_marker.addEventListener("mouseover", function(){
this.getLabel().show();
});
_marker.addEventListener("mouseout", function(){
this.getLabel().hide();
});
})()
}
setTimeout("runAddmarkers()",20000);
}
var timer = setTimeout("runAddmarkers()",20000); 望采纳。