Привязка данных к местоположению в google map
Прислано: Dimm
пн, 09/06/2008 - 19:12
Привязка данных к местоположению в 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:
$view_name='address_gmap'; $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 переопределяем функцию
function mytheme_locations($locations = array(), $hide = array()) { return; // Hide the Location(s) section. }
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:
//$args[0]="1955+1929+1969"; $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 для вывода вьюес
<?php $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/*
Продолжение следует...
- Dimm's blog
- Для комментирования войдите или зарегистрируйтесь
Здорово, спасибо...
- Для комментирования войдите или зарегистрируйтесь
а можно ли сделать ссылку из нода на карту 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 карт.Подскажите пожалуйста решение данной проблемы.
- Для комментирования войдите или зарегистрируйтесь
Ну вроде немного разобрался, поставил drupal 6,-все равно ссылка на карту не появлялась, тогда порылся на drupal.org нашел статью http://drupal.org/node/346694 и последовав совету #2 решил проблему. Но теперь возникла еще одна,- необходимо чтобы карта с меткой открывалась на моем сайте на странице Node locations а не на сайте google карт.Подскажите пожалуйста решение данной проблемы.
Какая "ссылка на карту", где это "Node locations"?
- Для комментирования войдите или зарегистрируйтесь
Node locations, - здесь http://mysite.ru/map/node, в смысле карта где все метки отображаются. Необходимо чтобы на странице с контентом была ссылка на страницу сайта с картой где бы и находилась метка, соответствующая данному контенту.
- Для комментирования войдите или зарегистрируйтесь
Если кому-то не хватило фич в google maps, то есть
gmap_addons, в том числе и тайлы с оверлеями.
- Для комментирования войдите или зарегистрируйтесь
Сделай выборку views , например по адресу /map_page/nid , где выводи ноду nid c помощью вида Gmap (карта)
- Для комментирования войдите или зарегистрируйтесь
вот,постепенно приближаюсь к цели, только не могли бы вы по-подробнее написать как сформировать этот запрос для выборки, с Views знаком плохо, пока только разбираюсь,спасибо.
- Для комментирования войдите или зарегистрируйтесь
В шестой ветке (пользую gmap+location) есть блок, выводящий карту на всех нодах с координатами.
- Для комментирования войдите или зарегистрируйтесь
спасибо!
- Для комментирования войдите или зарегистрируйтесь




Комментарии