здравствуйте.
стоит gmap+node location
хочу сделать, чтобы при клике на кнопку "москва", к примеру, карта переходила к региону москвы(например, через указание координат и зума marco).
Но не могу понять, как динамически этот marco задавать карте(даже с перезагрузкой страницы пойдет)
Есть у кого-нибудь идеи?
Искал тут по форуму, не нашел решения
Комментарии
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;?>
работает, и выводит карту.
но мне надо перерисовать ту же, что выведена вьюсой, только в другом масштабе или координатах...
Попробуйте использовать Views PHP Filter модуль, задать свои поля или переменные в адресной строке и потом значения конвертировать в API.
А лучше без вьюсов всяких. Сделайте свой модуль, определите путь и потом по ГЕТ параметрам стройте вывод.
Или если совсем лень, то PHP блок сделайте, и тоже самое ГЕТ параметры и перерисовка.
> задать свои поля или переменные в адресной строке и потом значения конвертировать в API.
да мне бы вот понять, как к этому апи обратиться так, чтобы получить текущую карту и её же просто отмасштабировать.
код сверху создает новую карту(без маркеров нод)..
js код
map.setCenter(new GLatLng(37.339085, -121.8914807), 18);
// Select a map type which supports obliques
map.setMapType(G_HYBRID_MAP);
map.setUIToDefault();
тоже новую карту создает
Вы можете пихать свои переменные в JS в 7-ке.
drupal_add_js(...);
и читать из JS:
Drupal.settings....
думайте, за вас делать никто не будет, а направления для размышлений я предоставил предостаточно.
нашел интересное в выводе вюсы
<?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'] и тд, а потом перегенерирую карту из этого массива и вывожу её.
вроде работает
Вариант, хоть и кривенький.