function getlocations_search_getmap in Get Locations 7
Same name and namespace in other branches
- 7.2 modules/getlocations_search/getlocations_search.module \getlocations_search_getmap()
Set up the map and use getlocations to spit it out
1 call to getlocations_search_getmap()
- theme_getlocations_search in modules/
getlocations_search/ getlocations_search.module - Themes the search page.
File
- modules/
getlocations_search/ getlocations_search.module, line 234 - getlocations_search.module @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL
Code
function getlocations_search_getmap($which = 'page') {
$getlocations_defaults = getlocations_defaults();
$getlocations_defaults['places'] = 1;
$getlocations_defaults['preload_data'] = 0;
$getlocations_search_defaults = getlocations_search_defaults();
if ($which == 'block') {
$getlocations_search_defaults = getlocations_search_block_get_var();
}
// we need a markermanager enabled
if ($getlocations_defaults['markermanagertype'] < 1) {
$getlocations_search_defaults['markermanagertype'] = 1;
}
$getlocations_search_defaults['pansetting'] = $getlocations_defaults['pansetting'];
// we need to update $getlocations_defaults with data from $getlocations_search_defaults
$keys = array(
'width',
'height',
'styles',
'latlong',
'zoom',
'minzoom_map',
'maxzoom_map',
'controltype',
'pancontrol',
'mtc',
'maptype',
'baselayers',
'scale',
'overview',
'overview_opened',
'scrollwheel',
'draggable',
'sv_show',
'sv_showfirst',
'sv_heading',
'sv_zoom',
'sv_pitch',
'trafficinfo',
'trafficinfo_state',
'bicycleinfo',
'bicycleinfo_state',
'transitinfo',
'transitinfo_state',
'poi_show',
'transit_show',
'markeraction',
'markeractiontype',
'markeraction_click_zoom',
'markeraction_click_center',
'minzoom',
'maxzoom',
'nodezoom',
'markermanagertype',
'usemarkermanager',
'useclustermanager',
'markerclusterer_style',
'markerclusterer_zoom',
'markerclusterer_size',
'markerclusterer_minsize',
'markerclusterer_title',
'markerclusterer_imgpath',
'map_backgroundcolor',
'show_maplinks',
'show_maplinks_viewport',
'fullscreen',
'show_bubble_on_one_marker',
'polygons_enable',
'polygons_strokecolor',
'polygons_strokeopacity',
'polygons_strokeweight',
'polygons_fillcolor',
'polygons_fillopacity',
'polygons_coords',
'polygons_clickable',
'polygons_message',
'rectangles_enable',
'rectangles_strokecolor',
'rectangles_strokeopacity',
'rectangles_strokeweight',
'rectangles_fillcolor',
'rectangles_fillopacity',
'rectangles_coords',
'rectangles_clickable',
'rectangles_message',
'circles_enable',
'circles_strokecolor',
'circles_strokeopacity',
'circles_strokeweight',
'circles_fillcolor',
'circles_fillopacity',
'circles_coords',
'circles_radius',
'circles_clickable',
'circles_message',
'polylines_enable',
'polylines_strokecolor',
'polylines_strokeopacity',
'polylines_strokeweight',
'polylines_coords',
'polylines_clickable',
'polylines_message',
'kml_group',
'map_resize',
'region_bias',
'fullscreen_disable',
'fullscreen_controlposition',
'search_places',
'search_places_size',
'search_places_position',
'search_places_label',
'search_places_placeholder',
'search_places_dd',
'search_places_list',
'search_radshape_toggle',
'search_radshape_toggle_active',
'search_radshape_enable',
'do_search_marker',
'search_marker_toggle',
'search_marker_toggle_active',
'geo_enable',
'geojson_enable',
'geojson_data',
'geojson_options',
'nokeyboard',
'nodoubleclickzoom',
'zoomcontrolposition',
'pancontrolposition',
'mapcontrolposition',
'scalecontrolposition',
'svcontrolposition',
'highlight_enable',
'highlight_strokecolor',
'highlight_strokeopacity',
'highlight_strokeweight',
'highlight_fillcolor',
'highlight_fillopacity',
'highlight_radius',
'getdirections_link',
'gps_button',
'gps_button_label',
'gps_marker',
'gps_marker_title',
'gps_bubble',
'gps_geocode',
'gps_center',
'gps_type',
'gps_zoom',
'smartip_button',
'smartip_button_label',
'smartip_marker',
'smartip_marker_title',
'smartip_bubble',
'smartip_center',
'smartip_zoom',
'smartip_callback',
'geolocation_mobile_check',
'geocoder_enable',
);
foreach ($keys as $key) {
$getlocations_defaults[$key] = $getlocations_search_defaults[$key];
}
// tell getlocations.js that this map is externally controlled
// switch it off for showall so that markers can be generated
if (!$getlocations_search_defaults['showall']) {
$getlocations_defaults['extcontrol'] = 'getlocations_search';
}
$mapid = getlocations_setup_map($getlocations_defaults);
$aggr = getlocations_aggr_get() ? TRUE : FALSE;
getlocations_search_js_settings_do($getlocations_search_defaults, $mapid);
$getlocations_search_paths = getlocations_search_paths_get();
$jsfile = $getlocations_search_paths['getlocations_search_path'];
$js_opts = array();
$js_opts['weight'] = $getlocations_defaults['getlocations_js_weight'] + 30;
$js_opts['type'] = 'file';
$js_opts['preprocess'] = $aggr;
drupal_add_js($jsfile, $js_opts);
$minmaxes = '';
$latlons = array();
if ($getlocations_search_defaults['showall']) {
$minmaxes = array(
'minlat' => 0,
'minlon' => 0,
'maxlat' => 0,
'maxlon' => 0,
);
$locations = getlocations_search_load_all_locations($getlocations_search_defaults['search_type']);
$ct = 0;
if (count($locations)) {
// we should loop over them and dump bummers with no lat/lon
foreach ($locations as $key => $location) {
if ($latlon = getlocations_latlon_check($location['latitude'] . ',' . $location['longitude'])) {
$ll = explode(',', $latlon);
$location['latitude'] = $ll[0];
$location['longitude'] = $ll[1];
$minmaxes = getlocations_do_minmaxes($ct, $location, $minmaxes);
if (!isset($location['key'])) {
$location['key'] = '';
}
if (isset($location['lid']) && $location['lid']) {
$id = $location['lid'];
}
elseif (isset($location['nid']) && $location['nid']) {
$id = $location['nid'];
$location['key'] = 'nid';
}
elseif (isset($location['uid']) && $location['uid']) {
$id = $location['uid'];
$location['key'] = 'uid';
}
elseif (isset($location['tid']) && $location['tid']) {
$id = $location['tid'];
$location['key'] = 'tid';
}
elseif (isset($location['cid']) && $location['cid']) {
$id = $location['cid'];
$location['key'] = 'cid';
}
$name = htmlspecialchars_decode(isset($location['name']) ? strip_tags($location['name']) : strip_tags($location['title']), ENT_QUOTES);
$latlons[] = array(
$location['latitude'],
$location['longitude'],
$id,
$name,
$location['marker'],
$location['key'],
'',
'',
);
$ct++;
}
}
}
if ($ct < 2) {
unset($minmaxes);
$minmaxes = '';
}
}
getlocations_js_settings_do($getlocations_defaults, $latlons, $minmaxes, $mapid, FALSE, $getlocations_defaults['extcontrol']);
$map = theme('getlocations_show', array(
'width' => $getlocations_defaults['width'],
'height' => $getlocations_defaults['height'],
'defaults' => $getlocations_defaults,
'mapid' => $mapid,
'latlons' => $latlons,
'minmaxes' => $minmaxes,
'type' => '',
'node' => '',
));
return array(
'map' => $map,
'mapid' => $mapid,
);
}