2012-02-08 22 views
0

私はGoogleマップapiで初心者です。ユーザーがマップ上にポリゴンを描くようにして、描画されたポリゴン上の座標を取得したいと考えました。Googleマップapi v2ポリゴン座標を取得

Iは、次のコードセグメントを使用しているが、それは私捕捉されない例外TypeErrorを次のエラーを得た:オブジェクト[オブジェクト課題】方法はありません「ある、getPath」

この私は

function startShape() { 


    initialize(); 
    document.getElementById('lat').disabled = true; 
    document.getElementById('lng').disabled = true; 
    var polygon = new GPolygon([],"ff0000", 2, 0.7,"ff0000",0.2); 
    startDrawing(polygon, "Shape " + (++shapeCounter_), function() { 
    var cell = this; 
    var area = polygon.getArea(); 
    cell.innerHTML = (Math.round(area/10000)/100) + "km<sup>2</sup>"; 
    }); 
    showcoor(polygon); 
} 




function startDrawing(poly, name, onUpdate) { 

map.addOverlay(poly); 
    poly.enableDrawing(options); 
    poly.enableEditing({onEvent: "mouseover"}); 
    poly.disableEditing({onEvent: "mouseout"}); 
    GEvent.addListener(poly, "endline", function() { 
    //var cells = addFeatureEntry(name, color); 
    //GEvent.bind(poly, "lineupdated", cells.desc, onUpdate); 
    GEvent.addListener(poly, "click", function(latlng, index) { 
     if (typeof index == "number") { 
     poly.deleteVertex(index); 
     } 
    }); 
    }); 


} 


function showcoor (poly) { 
GEvent.addListener(poly, "endline", function() { 
    GEvent.addListener(poly, "click", function() { 
    var str; 
       var vertices = this.getPath(); 
       for (var i =0; i < vertices.length; i++) { 
       var xy = vertices.getAt(i); 
       str += xy.lat() +"," + xy.lng()+"<br />"; 
       } 
       alert (str); 
      }); 
      }); 
    } 
を使用するコードであります
+0

あなたはV3を使用していますが、あなたのコードはV2ish(GPolygon、GEvent)に疑わしいと思われます。私たちが見ることができるすべてのコードを投稿した場所はありますか?おそらくJSFiddleで? –

答えて

2

GPolygonオブジェクトにはgetPathメソッドがありません。 GPolygon referenceを参照してください。

代わりに、getVertexCount()getVertex(i)を使用する必要があります。

for (var i = 0, I = this.getVertexCount(); i < I; ++i) { 
    var xy = this.getVertex(i); 
    str += xy.lat() + ', ' + xy.lng() + '<br />'; 
}