【发布时间】:2015-08-05 01:06:58
【问题描述】:
我有一个包含城市名称的简单数组。我正在尝试遍历此数组并在 Google 地图上添加由折线链接的标记。
这是我的代码:
function addMarkerCity(cities) {
$.each(cities, function(index, value) {
geocoder.geocode({'address': value}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var cityPosition = results[0].geometry.location;
flightRoute.push(cityPosition);
var currentMarker = map.addMarker({
position: cityPosition
});
});
});
});
}
函数 addMarkerCity 工作正常,由 JQuery 事件 click() 按钮触发。我使用数组 flightRoute 来存储每个标记的每个位置,然后将其传递给将在 2 个标记之间创建折线的函数。
现在的问题是,如果我单击两次按钮使其工作,我只能在地图上看到折线。
当我在做的时候:
console.log(flightRoute);
数组 flightRoute 首先等于 [],然后我可以看到 2 个先前创建的标记的 LatLng。有人可以告诉我我做错了什么,以获取 flightRoute 内的位置并立即显示标记。我非常接近得到我想要的结果。
【问题讨论】:
-
你能发布一个工作示例吗? JSfiddle 或类似的东西
-
你不需要按两次按钮来获得 2 个标记,然后这会给你一条折线吗?不能只有 1 分的线。
-
您发布的代码中没有点击功能(或地图)。你的点击功能是做什么的?请提供一个 Minimal, Complete, Tested and Readable example 来证明该问题。
-
发布的函数有语法错误。请提供一个 Minimal, Complete, Tested and Readable example 来证明该问题。
-
听起来您没有考虑到地理编码服务的异步特性。
标签: javascript google-maps google-maps-markers each google-polyline