2010-12-11 4 views
0

Ich verwende das Modul GMaps, Location und User Locations auf meiner Drupal-Site. Ich hätte gerne eine Karte, die die "Abdeckung" meiner Benutzer anzeigen kann. Der Abdeckungsradius wird in einem benutzerdefinierten Inhaltstyp mit Bezug auf den Benutzer gespeichert.Abdeckungskarte mit Drupal, GMap und Standort

Wie ist es möglich, Benutzer mit nur ihrem Abdeckungskreis auf einer Karte anzuzeigen? Ich habe einen solchen Display-Typ beim Spielen mit den GMap-Makros gesehen, also denke ich, dass es möglich wäre, GMaps auf diese Weise zu verwenden.

Ich vermute, dass dies wahrscheinlich nicht mit dem GMap-Modul out-of-the-box unterstützt wird. Wie auch immer, ich wäre wirklich froh, wenn mir jemand in die richtige Richtung zeigen könnte ...

Antwort

0

Das habe ich schließlich mit Hilfe der ungarischen Community geschafft. (Ich würde mir sehr über den ursprünglichen Thread zu verbinden, aber es scheint es gelöscht wurde.)

Grundsätzlich ist der „Trick“ war ein wenig benutzerdefiniertes Modul mit einem Haken zu machen:

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)); 
    } 
}