У меня есть карта с 5 маркерами и 25 прямоугольниками. Затем я перетаскиваю маркер в прямоугольник. Я хочу узнать название прямоугольника.

Прямо сейчас у меня есть слушатель прямоугольников, просто чтобы убедиться, что они названы правильно, и это отлично работает

google.maps.event.addListener(partialRectangle, 'click', function() {
  console.log(this.title);
});

И у меня также есть список маркеров, чтобы получить некоторую информацию, а затем перетаскивать их, и это тоже отлично работает

google.maps.event.addListener(marker, 'dragend', function() {
    console.log(marker.getPosition());
    console.log(this.title);

});

Есть идеи, как получить информацию о том, в какой прямоугольник я поместил маркеры?

Этот код решил мои проблемы

google.maps.event.addListener(marker, 'dragend', function() {
for(var i = 0; i < 25; i++){ // looping through rectangles
    if(partialRectangles[i].bounds.contains(marker.getPosition()))
        console.log(partialRectangles[i].title);
} 
 });
0
Mats Gustavsson 23 Сен 2012 в 18:51

1 ответ

Лучший ответ

Внутри слушателя каждого маркера dragend прокрутите весь прямоугольник LatLngBounds и используйте функцию contains(latLng:LatLng), чтобы определить, находится ли позиция нового маркера внутри этого прямоугольника LatLngBounds.

Псевдокод:

google.maps.event.addListener(marker, 'dragend', function() {
    for (var i = 0; i < rectangles.length; i++) {

         if(rectangles[i].getBounds().contains(marker.getPosition())) {
               console.log(rectangles[i].title);
         }
    }

});
1
Tina CG Hoehr 23 Сен 2012 в 20:56