【问题标题】:How to add polylines with an array of position?如何添加具有位置数组的折线?
【发布时间】: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


【解决方案1】:

为了动态地向多段线添加点

  1. 你需要一个 google.maps.MVCArray 类型的数组

    var points = new google.maps.MVCArray();

  2. 您需要将该 mvcarray 传递给折线

    var polyline = new google.maps.Polyline({ path: points });

【讨论】:

  • 感谢您的提示,但它不能解决我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
  • 2014-03-19
相关资源
最近更新 更多