Привязка данных к местоположению в 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/*

Продолжение следует...

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано glintwine в вт, 10/06/2008 - 11:42.

Здорово, спасибо...


Опубликовано mriakizz в вс, 21/12/2008 - 21:31.

а можно ли сделать ссылку из нода на карту google с меткой данного нода?


Опубликовано Dimm в пн, 22/12/2008 - 13:52.

Так она же в ноде и отображается.


Опубликовано mriakizz в пн, 22/12/2008 - 17:49.

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


Опубликовано Dimm в вт, 23/12/2008 - 07:17.

В шестоой версии
Редактирование типа материалла->Locative information->Display Settings


Опубликовано mriakizz в вт, 23/12/2008 - 19:14.

У меня версия 5.12, как в ней лучше поступить?


Опубликовано Dimm в ср, 24/12/2008 - 11:35.

Не знаю.
Почитай инструкцию, поищи решение, попробуй вывести в блоке через views


Опубликовано fasdalf@fasdalf.ru в чт, 25/12/2008 - 11:11.

Не пойму. У gmap есть поддержка тайлов, KML или кастомных карттипа "мои карты"?


Опубликовано mriakizz в пн, 29/12/2008 - 22:15.

Ну вроде немного разобрался, поставил drupal 6,-все равно ссылка на карту не появлялась, тогда порылся на drupal.org нашел статью http://drupal.org/node/346694 и последовав совету #2 решил проблему. Но теперь возникла еще одна,- необходимо чтобы карта с меткой открывалась на моем сайте на странице Node locations а не на сайте google карт.Подскажите пожалуйста решение данной проблемы.


Опубликовано Dimm в вт, 30/12/2008 - 07:17.

mriakizz написал(а):

Ну вроде немного разобрался, поставил drupal 6,-все равно ссылка на карту не появлялась, тогда порылся на drupal.org нашел статью http://drupal.org/node/346694 и последовав совету #2 решил проблему. Но теперь возникла еще одна,- необходимо чтобы карта с меткой открывалась на моем сайте на странице Node locations а не на сайте google карт.Подскажите пожалуйста решение данной проблемы.

Какая "ссылка на карту", где это "Node locations"?


Опубликовано mriakizz в вт, 30/12/2008 - 16:12.

Node locations, - здесь http://mysite.ru/map/node, в смысле карта где все метки отображаются. Необходимо чтобы на странице с контентом была ссылка на страницу сайта с картой где бы и находилась метка, соответствующая данному контенту.


Опубликовано fasdalf@fasdalf.ru в ср, 31/12/2008 - 09:30.

Если кому-то не хватило фич в google maps, то есть  gmap_addons, в том числе и тайлы с оверлеями.


Опубликовано Dimm в пн, 05/01/2009 - 08:15.

Сделай выборку views , например по адресу /map_page/nid , где выводи ноду nid c помощью вида Gmap (карта)


Опубликовано mriakizz в пн, 12/01/2009 - 19:43.

вот,постепенно приближаюсь к цели, только не могли бы вы по-подробнее написать как сформировать этот запрос для выборки, с Views знаком плохо, пока только разбираюсь,спасибо.


Опубликовано fasdalf@fasdalf.ru в вт, 13/01/2009 - 07:58.

В шестой ветке (пользую gmap+location) есть блок, выводящий карту на всех нодах с координатами.


Опубликовано mriakizz в вт, 13/01/2009 - 18:26.

спасибо!


Новое на сайте

Ссылки партнёров