如果在谷歌地图中存在多边形,则检查点

时间:2012-10-25 10:08:56

标签: google-maps

这是我的代码:

var posmark = markerarr["535413"].getPosition();
console.log(posmark);
// **Console.log** ▲
   Ya: 41.64272
   Za: 41.65764999999999
// 

var posshp = poli_arr.s1; 
console.log(posshp);
// **Console.log** ▲
 Zl: yo
 __e3_: Object
 __gm_id: 252
 b: null
 center: P
 fillColor: "#FF0000"
 fillOpacity: 0.35
 gm_accessors_: Object
 map: null
 radius: 100
 strokeColor: "#FF0000"
 strokeOpacity: 0.8
 strokeWeight: 2
 __proto__: c
//

 var res = google.maps.geometry.poly.containsLocation(posmark, posshp);
 console.log(res);
//**Console.log** ▲
Uncaught TypeError: Cannot call method 'getLength' of undefined

// 

在哪里是broblem?我无法解决它...我想要检查标记,如果存在于多边形区域。如果有人知道更好的方法来检查标记到poligon半径,请重播我如何做得更好。感谢

2 个答案:

答案 0 :(得分:0)

google.maps.geometry.poly库仅适用于Polygons,而非Circles

虽然您的问题中肯定没有提供足够的信息来回答它。

要检查圆内的点是否使用distanceBetween,如果圆与圆的中心之间的距离小于或等于圆的半径,则该点位于圆中。

答案 1 :(得分:0)

这方面的简单方法是对此代码进行测试并正常工作:

 function API_CONT_UPD(){
    //geting marker objects
    for (element in markerarr){
    //geting marker positions
    var pos = markerarr[element].getPosition();
    //geting shape objects
    for (element2 in poli_arr){
    //check position if is into shape
    if(poli_arr[element2].getBounds().contains(pos) == true){
    var unit = wialon.core.Session.getInstance().getItem(element);
    console.log(unit.getName());

    } //if close

}//shape for statment


} //marker for statment

}//function close