使用Google Maps API v3重新加载地图上的点
Reload points on a Map in using the Google Maps API v3
我试图重新加载点在地图上基于当有人点击一个按钮。
我有一对json对象保存在内存中,"数据"answers"data2"。下面的代码获取"data2"JSON文件,并将其设置为与"data"JSON文件相等,然后触发映射重新加载事件。
dataholder = data
function myFunction() {
data = dataholder
window.data = data2;
google.maps.event.trigger(map, 'resize');
}
当前,映射不会用新数据集重新加载。但是,我没有得到任何错误消息。
没有地图重载事件。当来自窗口大小调整时,resize事件最多将重新计算地图边界并重新投影现有特征(标记,折线,多边形)。对于这种情况,我认为手动触发resize事件不会有任何影响。
其次,你说你有两个json文件,但你的代码建议你有两个json对象已经在内存中(这意味着你不需要执行额外的请求来检索data2的值)。答案的其余部分将假设。
如果您的原始标记集合来自"data",它是LatLng对的集合,并且您想要替换"data2"内容的标记,该过程将是:
1。-将标记推入对象中,您可以稍后在
上找到它们var markers=[];
for(onemarker in data) {
var newmarker=new google.maps.Marker({map: map, position: new google.maps.LatLng({onemarker.lat, onemarker.lng}) });
markers.push(newmarker);
}
2。-当您想要替换标记时,首先清除标记数组
while(markers.length) {
var oldmarker=markers.pop();
oldmarker.setMap(null);
};
3。-用data2对象
中的数据填充标记数组for(onemarker in data2) {
var newmarker=new google.maps.Marker({map: map, position: new google.maps.LatLng({onemarker.lat, onemarker.lng}) });
markers.push(newmarker);
}
对于这类标记,对于常规特征,对象和底层数据之间没有即时绑定。对于新的google.maps.Data()层,这略有不同,您可以跳过迭代,只向其提供一个geoJSON数组。您仍然需要一个对象来存储当前的标记,否则当您想要删除它们时,您将无法访问它们。
相关文章:
- 谷歌地图API v3获胜't加载地图后禁用滚轮
- Google Map JS API-加载地图分幅,但所有图像(标记、缩放控制等)都不加载;t负载2分钟
- 使用Geolocation以引导模式加载地图,标记不会居中
- 谷歌地图-重新加载地图
- 如何访问已加载地图图块的源路径
- 使用自己的 JavaScript 函数加载地图图块
- 如何在平移时加载和销毁地图,而不是在加载时完全加载地图
- 谷歌地图V3绘图(谷歌示例不加载地图)
- 有人能帮我理解逻辑并修复它以加载地图吗
- AngularJS:NgMap-加载地图中心是'不受尊重
- Google maps API不加载地图
- 如何在ajax接收到数据后加载地图
- 引导自动完成不加载地图
- 使用$. getjson从JSON中加载地图数据
- 显示位置的变化在谷歌地图上没有重新加载地图一次又一次
- 地理定位:只移动谷歌地图标记,而不重新加载地图
- 从谷歌地图的URL加载地图到ExtJS GMapPanel
- 使用Google Maps API v3重新加载地图上的点
- Googlemap api v3给出了一个错误,而不是不加载地图
- 刷新/重新加载地图:谷歌地图API V2