Example #1
0
/**
 * 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;
	}';
    }
}
Example #2
0
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);
  }
}