/** * Output OpenLayers Library powered map_init() function for multi-point venues map. Uses map_locations() for pin locations cache. * @param string $lat Latitude for embedded map centerpoint. * @param string $lon Longitude for embedded map centerpoint. * @param string $pin_icon URL of pushpin icon image file. * @param array $venues [optional] Array of Venues for uncached multi-pushpin maps. Default:NULL * @since 2.1.0 * @version 2.2.0 * @return void */ function olayers_venues_init($lat, $lon, $pin_icon, $venues = array()) { global $hc_cfg, $hc_lang_core, $hc_lang_locations; $cached = count($venues) == 0 ? true : false; $pin_icon = $pin_icon == '' ? CalRoot . '/img/pins/pushpin.png' : $pin_icon; $layers = olayers_get_baselayers($lat, $lon, $hc_cfg[94]); echo ' OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3; OpenLayers.ImgPath = "' . $hc_cfg['OLImages'] . '"; var map, markers, marker, layer, popup, cur_popup, meLonLat, mapLonLat; var omarkers = []; function map_init(){ map = new OpenLayers.Map("map_canvas", { controls: [ new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoom' . ($cached ? 'Bar' : '') . '(), new OpenLayers.Control.LayerSwitcher(), new OpenLayers.Control.Attribution(), new OpenLayers.Control.KeyboardDefaults() ' . ($hc_cfg[94] != 3 ? ', new OpenLayers.Control.ScaleLine()' : '') . ' ]});' . $layers . ' markers = new OpenLayers.Layer.Markers("' . $hc_lang_core['EventVenues'] . '"); map.addLayer(markers); map.setCenter(mapLonLat,' . map_zoom(0) . '); map_add_venues(locations); } function map_add_venues(locations){ for(var i = 0; i < locations.length; i++) { if(locations[i] != undefined){ var location = locations[i]; lonLat = new OpenLayers.LonLat(location[3],location[2]).transform(new OpenLayers.Projection("EPSG:4326"),map.getProjectionObject()); map_create_marker(lonLat, \'<div class="iw"><div class="iw_menu">' . map_infowindow_menu() . '</div><b>\'+location[1]+\'</b><br />\'+map_set_iw(location)+\'</div>\',location[0]); } } } function map_create_marker(lonLat, popupContent, locID) { var size = new OpenLayers.Size(32,37); var offset = new OpenLayers.Pixel(-(size.w/2), -size.h); var icon = new OpenLayers.Icon(\'' . $pin_icon . '\',size,offset); var feature = new OpenLayers.Feature(markers, lonLat); feature.closeBox = true; feature.popupClass = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {\'autoSize\': true}); feature.data.popupContentHTML = popupContent; feature.data.overflow = "hidden"; feature.data.icon = icon; var marker = feature.createMarker(); marker.events.register("mousedown", feature, function (evt) { ' . ($cached ? ' if(cur_popup != null && cur_popup.visible()) cur_popup.hide(); if (this.popup == null) { this.popup = this.createPopup(this.closeBox); map.addPopup(this.popup); this.popup.show(); } else { this.popup.toggle(); } cur_popup = this.popup; OpenLayers.Event.stop(evt);' : ' window.open("' . CalRoot . '/index.php?com=location&lID="+locID,"_blank"); OpenLayers.Event.stop(evt);') . ' }); markers.addMarker(marker); } function map_reset(){ map.setCenter(mapLonLat,' . map_zoom(0) . '); if(cur_popup != null && cur_popup.visible()) cur_popup.hide(); } function map_near_me(){ if (navigator.geolocation) { go = 1; function found(position){ var size = new OpenLayers.Size(32,37); var offset = new OpenLayers.Pixel(-(size.w/2), -size.h); var icon = new OpenLayers.Icon(\'' . CalRoot . '/img/pins/me.png\',size,offset); me = new OpenLayers.Layer.Markers("' . $hc_lang_core['NearMe'] . '"); map.addLayer(me); meLonLat = new OpenLayers.LonLat(position.coords.longitude,position.coords.latitude).transform(new OpenLayers.Projection("EPSG:4326"),map.getProjectionObject()); me.addMarker(new OpenLayers.Marker(meLonLat,icon)); map.setCenter(meLonLat,15); document.getElementById("me_link").innerHTML = "' . $hc_lang_locations['ButtonMe'] . '"; } function lost(){ document.getElementById("me_link").innerHTML = "' . $hc_lang_locations['ButtonMe'] . '"; alert("' . $hc_lang_locations['NoNearMe'] . '"); } if(meLonLat == undefined){ document.getElementById("me_link").innerHTML = "' . $hc_lang_locations['ButtonMeWorking'] . '"; navigator.geolocation.getCurrentPosition(found, lost); } else { map.setCenter(meLonLat,15); } } else { alert("' . $hc_lang_locations['CantNearMe'] . '"); } } '; if (count($venues) == 0) { map_locations(); map_shared_js(); } else { echo ' var locations = ' . json_encode($venues) . '; function map_set_iw(loc){ var iw = ""; return iw; }'; } }
function power_info($ret, $object) { $text=""; if($power=$object->tags->get("power")) { $text.=lang("tag:power=".$object->tags->get("power"))."<br />\n"; switch($power) { case "line": $text.=$object->tags->compile_text("#tag/voltage#: %voltage%<br />\n"); $text.=$object->tags->compile_text("#tag/cables#: %cables%<br />\n"); $text.=$object->tags->compile_text("#tag/wires#: %wires%<br />\n"); map_zoom(16); break; case "generator": $text.=$object->tags->compile_text("#tag/power_source#: #tag_power_source/%power_source%#<br />\n"); default: map_zoom(17); } $ret[]=array("general_info", $text); } }