Карты Google: Как открыть InfoWindow для Полигона путем нажатия на него?

У меня есть простой вопрос, но я не могу найти ответ в документации API Google Maps...

У меня есть карта с 13 полигонами drawed API. Вот exemple одного из этих полигонов:

 var zone_up_montblanc = new GPolygon([
        new GLatLng(46.21270329318585, 6.134903900311617), 
        new GLatLng(46.20538443787925, 6.136844716370282), 
        new GLatLng(46.20525043957647, 6.141375978638086), 
        new GLatLng(46.20698751554006, 6.148050266912262), 
        new GLatLng(46.21110286985207, 6.153203229026629), 
        new GLatLng(46.21730757985668, 6.151718301267355), 
        new GLatLng(46.22092122197341, 6.153676364285801), 
        new GLatLng(46.22615123408969, 6.149844858907489), 
        new GLatLng(46.22851200024137, 6.149876939987202), 
        new GLatLng(46.22945159836955, 6.142758190170017), 
        new GLatLng(46.21735908463437, 6.141457132705133), 
        new GLatLng(46.21753573755057, 6.138058122426195), 
        new GLatLng(46.21270329318585, 6.134903900311617)
        ], "#6b1f43", 2, 0.9, "#92c87f", 0.5);

затем:

  map.addOverlay(zone_up_montblanc);

Полигоны появляются на моей карте, без проблем. Но вещь, которую я должен сделать теперь, состоит в том, чтобы открыть "InfoWindow" путем нажатия на каждого полигоны (с различным содержанием для каждого полигоны).

У кого-то были идея или пример?

Большое спасибо за Вашу справку!

10
задан jb_ 17 May 2010 в 00:13
поделиться

2 ответа

Я опишу решение, потому что я давно не использовал API и изо всех сил пытаюсь загрузить какие-либо большие объемы кода - здесь я не использовал функцию редактирования кода. Подробности см. В справке по API.

Итак, приступим:

  1. Вы добавляете многоугольники с помощью map.AddOverlay (), затем карта сохраняет ваши многоугольники.
  2. Объявите обработчик событий, перехватывающий щелчки на карте. Этому обработчику событий будет передан GLatLng места, по которому щелкнули, и наложения, по которому щелкнули (в вашем случае многоугольник). Вы можете выполнить простой типовой тест, чтобы определить, является ли наложение многоугольником.
  3. В обработчике событий используйте map.openInfoWindowHtml (), передав GLatLng, предоставленный в качестве местоположения, и HTML-контент, который вы хотите отобразить.

Это просто! Вам нужно будет посмотреть, как вы прикрепляете обработчики событий, поскольку я не помню подробностей. Итак, что вам нужно искать в API:

  • Добавление обработчиков событий на карту
  • Проверка типа наложения

Вы должны быть в состоянии найти методы для вызова и всю информацию на странице api :

http://code.google.com/apis/maps/documentation/reference.html

Удачи!

0
ответ дан 4 December 2019 в 01:55
поделиться

Привет и большое спасибо filip-fku!

Благодаря вашему комментарию, я наконец нашел, как это сделать! :-) Итак, если кто-то будет искать «как это сделать», вот фрагмент кода:

GEvent.addListener(zone_up_champagne, "click", function(overlay,latlng) {
    map.openInfoWindowHtml(overlay, '<strong>Your html things :</strong><br />etc...');
});

надеюсь, это поможет!

еще раз спасибо, филипп! :)

2
ответ дан 4 December 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: