Привязка данных к местоположению в google map
Результат здесь:
http://krasmebel.ru/taxonomy/term/17
http://krasmebel.ru/node/2764
1. Устанавливаем GMap 5.x-1.x-dev
2. Устанавливаем Location 5.x-1.x-dev
3. Включаем модули GMap, GMap Location, GMap Views Integration, Location, Location Views
4. Настраиваем текущее местоположение в настройках GMap, GMap Location и Location.
5. В нужном типе данных включаем использование Locative information и настраиваем.
6. В ноде пробуем поставить маркер.
7. Создаем вьюес для отображения этого маркера при просмотре ноды address_gmap:
Для того чтоб работало управление видами маркеров надо сделать страничный тип.
Provide Block – галка
View Type: GmapView
Nodes per Block: 99
Fields: Node: Title + Location: Latitude + Location: Longitude
Arguments: Node: ID
Фильтры: Node: Distinct + Node: Published
8. Для отображения этого вьюеса при просмотре ноды я создал Computed field address_gmap_comp которое должно всегда отображаться:
Computed Code:
$node_field[0]['value']=1;
Display Format:
$current_view='';
$current_view->args[0]=$node->nid;
$view = '';
$view = views_get_view($view_name);
$display = (views_build_view('block', $view, $current_view->args, false, $view->nodes_per_block));
Data Type: int
Data Length: 1
Default Value: 1
9. Убираем вывод слова из ноды
В template.php переопределяем функцию
10. Делаем блок для отображения на карте адресов фирм в текущем разделе таксономии
Для этого:
11. Устанавливаем ReferencedByFilter + патч http://drupal.ru/node/15647
12. Создаем вьюес taxonomy_address
Для того чтоб работало управление видами маркеров надо сделать страничный тип.
Provide Block: галка
View Type: GMap View
Fields:
Node: Title
Location: Latitude
Location: Longitude
Arguments:
Node Reference: Views on node reference (Option: fied_firm_ref_address)
Argument Handling Code:
$current_view->args[0]=$args[1];
$current_view->args[1]='firm';
$view1 = views_get_view('taxonomy_node');
$items=views_build_view('items', $view1, $current_view->args, false, false);
$str='';
foreach ($items[items] as $item) {
$str=$str . $item->nid.'+';
}
$args[0]=substr($str,0,-1);
$view->is_cacheable = 0;
Фильтры:
Node: Published
Node: Distinct
Node: Type: Адреса
P.S.
Предварительно должен быть создан вьюес taxonomy_node, который по текущему термину таксономии $args[1] будет выбирать ноды-фирмы, принадлежащие данному термину.
13. Создаем блок taxonomy_address для вывода вьюес
$view_name='taxonomy_address';
$current_view='';
if(!arg(2)) { $current_view->args[0] = 'all'; }
else{ $current_view->args[0] = arg(2);}
$view = '';
$view = views_get_view($view_name);
// $view->block_type = 'teaser';
$view->nodes_per_block = '999';
// $view->block_more = TRUE;
print views_build_view('block', $view, $current_view->args, false, $view->nodes_per_block);
?>
И Показываем его только на перечисленных страницах:
taxonomy/term/*
Продолжение следует...
Комментарии
Здорово, спасибо...
а можно ли сделать ссылку из нода на карту google с меткой данного нода?
Так она же в ноде и отображается.
я делал через Gmap и Gmap location, на странице с контентом отображается только широта, долгота а ссылки на карту нет. Подскажите пожалуйста в чем дело...
В шестоой версии
Редактирование типа материалла->Locative information->Display Settings
У меня версия 5.12, как в ней лучше поступить?
Не знаю.
Почитай инструкцию, поищи решение, попробуй вывести в блоке через views
Не пойму. У gmap есть поддержка тайлов, KML или кастомных карттипа "мои карты"?
Ну вроде немного разобрался, поставил drupal 6,-все равно ссылка на карту не появлялась, тогда порылся на drupal.org нашел статью http://drupal.org/node/346694 и последовав совету #2 решил проблему. Но теперь возникла еще одна,- необходимо чтобы карта с меткой открывалась на моем сайте на странице Node locations а не на сайте google карт.Подскажите пожалуйста решение данной проблемы.
Какая "ссылка на карту", где это "Node locations"?
Node locations, - здесь http://mysite.ru/map/node, в смысле карта где все метки отображаются. Необходимо чтобы на странице с контентом была ссылка на страницу сайта с картой где бы и находилась метка, соответствующая данному контенту.
Сделай выборку views , например по адресу /map_page/nid , где выводи ноду nid c помощью вида Gmap (карта)
Если кому-то не хватило фич в google maps, то есть [module=gmap_addons], в том числе и тайлы с оверлеями.
вот,постепенно приближаюсь к цели, только не могли бы вы по-подробнее написать как сформировать этот запрос для выборки, с Views знаком плохо, пока только разбираюсь,спасибо.
В шестой ветке (пользую gmap+location) есть блок, выводящий карту на всех нодах с координатами.
спасибо!