Карта покрытия с Drupal, GMap и местоположением - PullRequest
0 голосов
/ 11 декабря 2010

Я использую модуль GMaps, Location и User location на моем сайте Drupal. Я хотел бы иметь карту, которая может отображать «охват» моих пользователей. Радиус покрытия сохраняется в пользовательском типе контента со ссылкой на пользователя.

Как можно отобразить пользователей только с их кругом охвата на карте? Я видел такой тип дисплея при игре с макросами GMap, поэтому думаю, что можно было бы использовать GMaps таким образом.

Полагаю, скорее всего, это не поддерживается "из коробки" с модулем GMap. В любом случае, я был бы очень рад, если бы кто-нибудь мог указать мне правильное направление ...

1 Ответ

0 голосов
/ 15 августа 2011

Мне все-таки удалось сделать это с помощью венгерского сообщества. (Я был бы рад связать исходную ветку, но, кажется, она была удалена.)

По сути, «хитрость» заключалась в том, чтобы создать небольшой пользовательский модуль с крючком:

function MODULENAME_preprocess_gmap_view_gmap(&$vars) {
  if ( $vars['view']->name == "my_gmap_view" ) {
    $map_object = $vars['map_object'];
    $map_object['id'] = 'my_view_id';
    foreach ($vars['view']->result as $key => $row) {
      $shapes[$key]['type'] = 'circle';

      // we have a profile field for the radius, but it could be anything...
      $shapes[$key]['radius'] = $row->profile_values_profile_radius_value;

      // center the circles on the coord
      $shapes[$key]['center'][0] = $row->location_latitude;
      $shapes[$key]['center'][1]= $row->location_longitude;
    }

    // we don't need any markers, just the circles
    $map_object['markers'] = NULL;
    $map_object['shapes'] = $shapes;
    $vars['map'] = theme('gmap', array('#settings' => $map_object));
  }
}
...