gmap - переход к определенной локации

Главные вкладки

Аватар пользователя colombo_ colombo_ 19 сентября 2012 в 16:09

здравствуйте.
стоит gmap+node location

хочу сделать, чтобы при клике на кнопку "москва", к примеру, карта переходила к региону москвы(например, через указание координат и зума marco).
Но не могу понять, как динамически этот marco задавать карте(даже с перезагрузкой страницы пойдет)

Есть у кого-нибудь идеи?
Искал тут по форуму, не нашел решения Sad

Комментарии

Аватар пользователя colombo_ colombo_ 19 сентября 2012 в 17:00

api почитал
и вот такой, к примеру, код

<?php        $macro_text "[gmap zoom=7 |center=41.9023,-87.5391 |width=600px |height=400px |control=Small |type=Map]";
  
$map_array gmap_parse_macro($macro_text);
   
$element1 = array(
    
'#type' => 'gmap',
    
'#gmap_settings' => $map_array,
  );
  
$output1 drupal_render($element1);
  echo 
$output1;?>

работает, и выводит карту.
но мне надо перерисовать ту же, что выведена вьюсой, только в другом масштабе или координатах...

Аватар пользователя divined divined 19 сентября 2012 в 17:12

Попробуйте использовать Views PHP Filter модуль, задать свои поля или переменные в адресной строке и потом значения конвертировать в API.

А лучше без вьюсов всяких. Сделайте свой модуль, определите путь и потом по ГЕТ параметрам стройте вывод.

Или если совсем лень, то PHP блок сделайте, и тоже самое ГЕТ параметры и перерисовка.

Аватар пользователя colombo_ colombo_ 19 сентября 2012 в 17:32

> задать свои поля или переменные в адресной строке и потом значения конвертировать в API.

да мне бы вот понять, как к этому апи обратиться так, чтобы получить текущую карту и её же просто отмасштабировать.

код сверху создает новую карту(без маркеров нод)..
js код

      var map = new GMap2(document.getElementById("gmap-auto1map-gmap0"));
      map.setCenter(new GLatLng(37.339085, -121.8914807), 18);

      // Select a map type which supports obliques
      map.setMapType(G_HYBRID_MAP);
      map.setUIToDefault();

тоже новую карту создает

Аватар пользователя divined divined 19 сентября 2012 в 18:03

Вы можете пихать свои переменные в JS в 7-ке.

drupal_add_js(...);

и читать из JS:

Drupal.settings....

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

Аватар пользователя colombo_ colombo_ 19 сентября 2012 в 18:10

нашел интересное в выводе вюсы

<?php
/**
 * @file gmap-view-gmap.tpl.php
 * Default view template for a gmap.
 *
 * - $map contains a themed map object.
 * - $map_object contains an unthemed map object.
 *
 * @ingroup views_templates
 */
?>
<?php 
if (!empty($title)) : ?>
  <h3><?php print $title?></h3>
<?php endif; ?>
  
   
<?php print $map?>

<?php //drupal_set_message('<pre>form: ' . print_r($map_object, TRUE) . '</pre>'); ?>

в общем сделал так - в объекте(массив) $map_object - меняю координаты и зум $map_object['longitude'] и тд, а потом перегенерирую карту из этого массива и вывожу её.
вроде работает