Привязка данных к местоположению в google map

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

Аватар пользователя Dimm Dimm 9 июня 2008 в 23: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/*

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

Комментарии

Аватар пользователя mriakizz mriakizz 22 декабря 2008 в 20:49

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

Аватар пользователя mriakizz mriakizz 30 декабря 2008 в 1:15

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

Аватар пользователя Dimm Dimm 30 декабря 2008 в 10:17

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

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

Аватар пользователя mriakizz mriakizz 30 декабря 2008 в 19:12

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

Аватар пользователя mriakizz mriakizz 12 января 2009 в 22:43

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