在谷歌地图上绘制来自Json数组的LatLng坐标-所有标记都堆叠在同一位置
Plotting LatLng coordinates from Json Array on Google Map --- the markers all stack up in the same location
我有一个包含纬度和经度坐标的Json数组。下面是一个示例:
"zones":[{"Zip":35824,"Latitude":34.647995,"Longitude":-86.738549},...
我试图在数组上使用循环来解析坐标并在谷歌地图上绘制它们。这是我的Javascript:
function getLocations() {
$.getJSON("http://localhost:1117/zones/latlng", function (json) {
var location;
$.each(json.zones, function (i, item) {
location = item.Latitude + ',' + item.Longitude, addMarker(location);
});
});
};
function addMarker(location) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(location),
map: map,
icon: redImage
});
markersArray.push(marker);
}
我的问题是标记最终堆叠在一起,绘制在地图的左上角(在海洋的正中央)。标记堆栈的位置在我的Json数组中没有出现。我做错了什么?
我认为问题是新的google.maps.LatLng()期望(number,number)作为参数,你正在传递一个格式为"number,number"的字符串。
如果你改变addMarker()函数有两个参数(例如纬度,经度)应该工作:
function getLocations() {
$.getJSON("http://localhost:1117/zones/latlng", function (json) {
var location;
$.each(json.zones, function (i, item) {
addMarker(item.Latitude,item.Longitude);
});
});
}
function addMarker(lat,lng) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(lat,lng),
map: map,
icon: redImage
});
markersArray.push(marker);
}
使用聚类,将一组标记作为聚类。一个集群将在内部呈现许多标记。
相关文章:
- 如何将节点移动到所需位置
- 是否可以避免使用SoundManager2和SoundCloud JavaScript SDK将歌曲下载到所提供的位置
- 在表格或所需位置下方弹出文本
- GWT:如何从当前光标位置或所选文本中获取css样式的属性
- 获取所选元素的位置,而不是 DOM 中元素的索引
- 存储字母表中每个字母在所需位置的字符串中出现的次数
- 如何在文件中存储带有所需位置标记的地图
- Angularjs select:如何获取所选项目的位置并设置默认选择
- 如果用户尚未提交,则应在导航前收到警报,否则导航到所需位置
- 如何拖动图像并将其拖放到所需位置
- 无法使用 window.scrollTo(0,content_scroll_pos);使窗口滚动到所需位置
- 在 iPad 上绝对定位不会将元素设置在所需位置
- 将播放列表保存到所需位置
- 反弹球会重置到所需位置,但不会移动
- javascript中所选内容的位置
- javascript如何将数据添加到数组中所需的位置
- 如何将控制器源代码从app.js移动到angular项目中所需的文件夹位置
- 当我选择一个选项时,从所选位置选中复选框
- 根据所单击的元素滚动到页面上的相同位置
- 如何计算透视相机从一个位置到另一个位置所花费的时间