2010-12-11 109 views
0

我在我的Drupal站点上使用GMaps,位置和用户位置模块。我想有一张地图可以显示我的用户的“覆盖范围”。覆盖范围半径以参考用户的自定义内容类型存储。Drupal,GMap和位置的覆盖图

如何才能在地图上显示只有覆盖范围的用户?在使用GMap宏时,我看到了这样的显示类型,所以我认为可以这样使用GMaps。

我想这很可能不支持GMap模块的开箱即用。无论如何,如果有人能指引我走向正确的方向,我会很高兴......

回答

0

我已经设法在匈牙利社区的帮助下完成了这一切。 (我会很乐意到原来的螺纹连接,但似乎它删除了。)

基本上“绝招”是使用钩子一点点自定义模块:

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