我在我的 Drupal 站点上使用 GMaps、位置和用户位置模块。我想要一张可以显示我的用户的“覆盖范围”的地图。覆盖半径存储在参考用户的自定义内容类型中。
如何在地图上仅显示用户的覆盖范围?我在玩 GMap 宏时看到了这样的显示类型,所以我认为可以这样使用 GMap。
我想 GMap 模块很可能不支持开箱即用。无论如何,如果有人能指出我正确的方向,我会很高兴......
我在我的 Drupal 站点上使用 GMaps、位置和用户位置模块。我想要一张可以显示我的用户的“覆盖范围”的地图。覆盖半径存储在参考用户的自定义内容类型中。
如何在地图上仅显示用户的覆盖范围?我在玩 GMap 宏时看到了这样的显示类型,所以我认为可以这样使用 GMap。
我想 GMap 模块很可能不支持开箱即用。无论如何,如果有人能指出我正确的方向,我会很高兴......
毕竟,在匈牙利社区的帮助下,我成功地做到了这一点。(我很乐意链接原始线程,但它似乎已被删除。)
基本上,“诀窍”是用钩子制作一个小自定义模块:
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));
}
}