-1

这是我的代码:

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

// 

问题在哪里?我无法修复它...我想检查标记是否存在于多边形区域中。如果有人知道将标记检查到 poligon 半径的更好方法,请重播我如何才能做得更好。谢谢

4

2 回答 2

0

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

尽管您当然没有在问题中提供足够的信息来回答它。

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

于 2012-10-25T12:01:50.177 回答
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
于 2012-10-25T12:50:50.047 回答