google地图上添加标记

kteven01 2011-05-27 11:21:35
我想往google地图上添加标记。
实现效果:一周之内登陆过的用户全部在地图上显示为灰色图像,当前在线用户在地图上显示为当前图像(当前在线用户不在一周之内登陆用户范围之内)。下面的为当前在线用户的图标添加。
var data = datas[0];
var goodslist = datas[1];
var Dynamiclist = datas[2];
//alert("调试监测——01\r\nmarkerlist.length="+markerlist.length);
//以下处理在线信息
//本次循环主要是根据传递过来的数据,对markerlist进行过滤,如果新数据里不存在的则从markerlist里删除,否则继续留着,则从新数据里删除。
//望地图里添加各个标记
for (var i = 0; i < markerlist.length; i++) {
var index = -1;
for (var j = 0; j < data.length; j++) {
if (data[j] != undefined) {
if (markerlist[i].StatOnline.HId == data[j].HId) {
if (markerlist[i].StatOnline.CID != data[j].CID)
index = -1;
else
index = j;
break;
}
}
}
if (index != -1)
delete data[index];
else {
map.removeOverlay(markerlist[i].marker); //先从地图上移除对应得标记。
markerlist.splice(i, 1); //从数组中移除一个元素

i--;
}

}
//本次循环对剩余的新数据,添加到markerlist里和地图里。
var newdata;
for (var i = 0; i < data.length; i++) {
//alert('监测——02')
if (data[i] != undefined) {
var sondata = data[i];
var o = new Object();
o.StatOnline = sondata;
var info = comminfo(sondata);
o.marker = createMarker(sondata.Lng, sondata.Lat, info, (sondata.CID > -1) ? true : false, sondata.UP);
markerlist.splice(0, 0, o);
map.addOverlay(o.marker);
//以下比较哪个是最新的
if (newdata) {
if (newdata.StatOnline.ST < o.StatOnline.ST)
newdata = o;
}
else
newdata = o;
}
}
...全文
788 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhdxhj 2011-05-27
  • 打赏
  • 举报
回复
做个记号
ahhisoft 2011-05-27
  • 打赏
  • 举报
回复
给个建议:如果显示的用户总数很多的话,可以按照当前地图窗口范围来异步载入。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧