javascript - 循环遍历多边形特征谷歌地图API v 3

标签 javascript jquery arrays google-maps google-maps-api-3

有没有办法使用谷歌地图v3循环遍历多多边形特征来提取每个子多边形,然后使用 containsLocation()找出子多边形内的位置是否与我存储的纬度和经度坐标相匹配?

我希望能够使用这样的循环:

//check if multipolygon
if(e.feature.getGeometry().getType()==='MultiPolygon'){

 //loop over sub polygons
  var polygons = e.feature.getGeometry().getArray();

  polygons.foreach(function(item, index){

    //item is our polygon?

    var coords = item.getAt(index).getArray();
    var poly = new google.maps.Polygon({

      paths: coords,

    });

    //check if the subpolygon contains my latlong

    if(google.maps.geometry.poly.containsLocation(myLatLong, poly)){

     // do something

    }

  });

}

但是,它不起作用,因为我不认为“item”实际上是一个多边形?

任何帮助都会帮助我实现这一目标。

最佳答案

我发现问题出在 .getAt(i) 上,它需要是 .getAt(0)

if (e.feature.getGeometry().getType() === 'MultiPolygon' ) {
          var array = e.feature.getGeometry().getArray();
          array.forEach(function(item,i){

            var coords= item.getAt(0).getArray();
            var poly = new google.maps.Polygon({
              paths: coords
            });
            if (google.maps.geometry.poly.containsLocation(location, poly)) {
              //do something

            }

          });
        }

关于javascript - 循环遍历多边形特征谷歌地图API v 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45622796/

相关文章:

javascript - 在 jquery 中使用多个 id

javascript - 使用来自 ajax 下拉菜单的 onclick 事件更新隐藏的输入值

javascript - 数组慢元素移除

javascript - 基于外部逻辑的具有索引增量限制的可变数量的嵌套 While 循环

javascript - 加载外部图像之前检查浏览器缓存

javascript - 点击adsense广告或任何地方时隐藏div

javascript - 如何在 Javascript Metro 应用程序中检测右键单击 ListView 中的项目

javascript - 动态添加 dropzone.js div 元素到表单

jquery - diff 不是函数

C++ 数组值不变