写好了,感谢各位的回答,同时谢谢xiaoxi提供判定多边形内算法方向.具体可以用射线法判定,附上代码:/***
创建图形
@param index
*/
function create_Polygon(){
if(!check_init_map()){
alert("地图加载失败,请重新登陆.");
return;
}
var gploygon = new GPolygon([],"#f33f00",2, 1, "#ff0000", 0.2);
google_Map.addOverlay(gploygon); //并放如
gploygon.enableDrawing();
//会在第一个点处触发“endline”事件,否则,会触发“cancelline”事件,但是不会从地图上删除折线。
GEvent.addListener(gploygon, "endline", function () {
var temp_points = [];
var len = gploygon.getVertexCount();
for(var i = 0 ;i < len ;i++) {
var temp = gploygon.getVertex(i);
temp_points.push(temp.lat()+","+temp.lng());
}
var html = [];
html.push("<input type=\"button\"
onclick=\"add_ploygon_list("+ploygon_index+",'"+temp_points.join(";")+"')\"
value=\"保存\"/> <br/>");
// var len = gploygon.getVertexCount();
google_Map.openInfoWindowHtml(gploygon.getVertex(0), "<span
style='color:black'>"+ html.join("")+"</span>");
GEvent.addListener(gploygon, "click", function (latlng) {
google_Map.openInfoWindowHtml(latlng, "<span
style='color:black'>"+ html.join("")+"</span>");
});
GEvent.addListener(gploygon, "mouseover", function (latlng) {
gploygon.enableEditing();//允许编辑
});
GEvent.addListener(gploygon, "mouseout", function (latlng) {
gploygon.disableEditing();//允许编辑
});
});
}