Информационные окна боковой панели и вкладок с использованием Google Maps v2 - PullRequest
1 голос
/ 21 марта 2010

Кто-нибудь знает пример использования карты Google для создания карты с боковой панелью

http://econym.org.uk/gmap/example_map4c.htm

и информационные окна с вкладками

http://econym.org.uk/gmap/example_map10a.htm?

Маркеры определены и готовы к боковой панели

      function createMarker(point,name,html) {
        var marker = new GMarker(point,{icon:myIcon});

        // add a line to the side_bar html
        side_bar_html += '<div id="'+linkid+'"><a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<\/a><br><\/div>';
        return marker;
      }

Боковая панель получает заголовки от имени, определенного для маркера:

var marker = createMarker(point,"Point Title", 'Point Content')
map.addOverlay(marker); 

Вкладки создаются путем передачи маркеров в массивы:

      function createTabbedMarker(point,htmls,labels) {
        var marker = new GMarker(point);

и

   var marker = createTabbedMarker(point, ["Tab 1 contents", "Tab 2 contents","Tab 3 contents","Tab 4 contents"],["One","Two","Three","Four"]);
      map.addOverlay(marker);

У меня вопрос, как я могу получить только первую часть массива [метки], в этом примере 'One', и получить ли это то, что выводится для боковой панели?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2010

Это выполнимо ... если вы посмотрите документацию Google Maps на Gmarker или, более конкретно, Gmarker.openInfoWindowTabsHtml, вы увидите, что для этого нужны два аргумента: 1007 *

  1. Массив GInfoWindowTab
  2. A GInfoWindowOptions объект JavaScript.

В документации для GInfoWindowOptions вы увидите, что вы можете передать индекс табуляции через свойство selectedTab. В этом случае мы можем использовать код из примера боковой панели и просто обновить функцию myclick:

function myclick(i) {
        gmarkers[i].openInfoWindowHtml(htmls[i]);
      }

становится:

function myclick(i, tab_index) {
        gmarkers[i].openInfoWindowHtml(htmls[i], { selectedTab : tab_index });
      }

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

createMarker(point,name,html,tab_count) {
    // ...snip ...
    var links_html_temp = "";
    while (--tab_count) {
         links_html_temp = '<a href="javascript:myclick(' + i + ',' + tab_count + ')">' + name + ': Tab #' + tab_count + '<\/a><br>' + links_html_temp;
    }
    side_bar_html += links_html_temp;

Я оставлю на усмотрение вашей конкретной реализации передать соответствующее количество вкладок в createMarker.

0 голосов
/ 21 марта 2010

Боковая панель в первом примере не является функцией API Карт Google;я просто ячейка таблицы, которая обновляется в Javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...