有没有一种方法可以使用Google Maps 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

    }

  });

}


但是,它不起作用,因为我不认为“项目”实际上是多边形吗?

我将如何实现这一目标,将对您有所帮助。

最佳答案

我发现问题出在.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

            }

          });
        }

07-26 05:47