Google maps api v2 получают координату многоугольника - PullRequest
0 голосов
/ 09 февраля 2012

Я немного новичок в API карт Google.Мне удалось позволить пользователю нарисовать многоугольник на карте, а затем я хочу получить координаты на многоугольнике рисования.

Я использовал следующий сегмент кода, но он выдал следующую ошибку Uncaught TypeError: Object [object Object] не имеет метода 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);
            });
            });
    }

1 Ответ

2 голосов
/ 09 февраля 2012

Нет метода getPath для объекта GPolygon. См. GPolygon справочник .

Вместо этого вам нужно будет использовать getVertexCount() и getVertex(i).

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