biopama_protected_areas-8.x-1.3/js/node/node_map_interaction.js

js/node/node_map_interaction.js
jQuery(document).ready(function($) {
	thisMap.on('click', getFeatureInfo);
	
	function getFeatureInfo(e){
		var regionSelected = regionCheck(e);
		var CountrySelected = countryCheck(e);
		var pasSelected = paCheck(e);
		var regionText = '';
		var countryText = '';
		var pasText = '';

		if (typeof regionSelected !== 'undefined' ){
			regionText = "<div class='node-pop-region'>" + regionSelected + "</div>";
		}
		if (typeof CountrySelected !== 'undefined' ){
			countryText = "<div class='node-pop-country'>" + CountrySelected + "</div>";
		}
		if (typeof pasSelected !== 'undefined' ){
			pasText = "<div class='node-pop-pa'>Protected Areas:<br>" + pasSelected + "</div>";
		}
		
		var paPopupContent = "<div class='node-pop-wrapper'>" +
				regionText +
				countryText +
				pasText +
				"</div>";
		if (paPopupContent.length > 63){
			new mapboxgl.Popup()
			.setLngLat(e.lngLat)
			.setHTML(paPopupContent)
			.addTo(thisMap);
		}
		
	}
	function regionCheck(e){
		var region = getMapRegion(e.point);
		var regionURL = '';
		console.log(region)
		if (typeof region !== 'undefined') {
			switch(region.properties.Group) {
				case "Eastern Africa":
					regionURL = "eastern_africa";
					//console.log(popUpContents.regionID);
					break;
				case "Central Africa":
					regionURL = "central_africa";
					break;
				case "Western Africa":
					regionURL = "western_africa";
					break;
				case "Southern Africa":
					regionURL = "southern_africa";
					break;
				default:
					regionURL = selSettings.regionName;
					break;
				}
			var regionSelected = 'disabled';
			if (selSettings.regionID != region.properties.Group){
				regionSelected = 'enabled'
			}
			var regionLink = "Region: <a class=' "+regionSelected+"' href='/region/"+regionURL+"'>" + region.properties.Group + "</a>";	
			return regionLink;
		} 
	}
	function countryCheck(e){
		var country = getMapCountry(e.point);
		if (typeof country !== 'undefined') {
			var countrySelected = 'disabled';
			if (selSettings.iso2 != country.properties.iso2){
				countrySelected = 'enabled';
			}
			var countryLink = "Country: <a class=' "+countrySelected+"' href='/country/"+country.properties.iso2+"'>" + country.properties.original_n + "</a>";
			return countryLink;
		}
	}
	function paCheck(e){
		var PAs = getMapPAs(e.point);
		if (typeof PAs !== 'undefined') {
			var paLinks = "";
			for (var key in PAs) {
			  paLinks = paLinks + "<a href='/pa/"+PAs[key].properties.WDPAID+"'>" + PAs[key].properties.NAME + "</a><br>";
			}
			return paLinks;
		}
	}
});

var homepageMapZoomOptions = {
	padding: {top: 20, bottom:20, left: 20, right: 20}
};
/* (function ($, Drupal) {
	$( ".view-id-menu_level_1_policies_:visible" ).trigger('RefreshView')
})(jQuery, Drupal); */
function zoomToRegion(region){
  if(region === 'central_africa'){
	selSettings.regionID, selSettings.regionName = 'Central Africa';
    thisMap.fitBounds([[1.8683898449,24.8886363352], [36.1896789074,-16.0012446593]], homepageMapZoomOptions);
  } else if (region === 'eastern_africa'){
	selSettings.regionID, selSettings.regionName = 'Eastern Africa';
    thisMap.fitBounds([[20.3034484386,26.6692628716], [54.6247375011,-14.0916051203]], homepageMapZoomOptions);
  } else if (region === 'western_africa'){
	selSettings.regionID, selSettings.regionName = 'Western Africa';
    thisMap.fitBounds([[-28.1462585926,31.1678846111], [20.4572570324,-0.7446243056]], homepageMapZoomOptions);
  } else if (region === 'southern_africa'){
	selSettings.regionID, selSettings.regionName = 'Southern Africa';
    thisMap.fitBounds([[6.5265929699,-5.3073515284], [61.0187804699,-47.2924889494]], homepageMapZoomOptions);
  } else if (region === 'pacific'){
	selSettings.regionID, selSettings.regionName = 'Pacific';
    thisMap.fitBounds([[123.75,-24.846565], [216.914063,18.312811]], homepageMapZoomOptions);
  } else if (region === 'caribbean') {
	selSettings.regionID, selSettings.regionName = 'Caribbean';
	thisMap.fitBounds([[-93.691406,-1.581830], [-51.240234,28.844674]], homepageMapZoomOptions);
  } else {
	  return;
  }
}

function zoomToCountry(iso2){
  var result;
  if(iso2 === 'FJ'){
    thisMap.fitBounds([[166.61,-26.39], [192.01,-9.62]], homepageMapZoomOptions);
  } else if (iso2 === 'TV'){
    thisMap.fitBounds([[168.58,-13.60], [191.48,-3.88]], homepageMapZoomOptions);
  } else if (iso2 === 'KI'){
    thisMap.fitBounds([[-201.57,-15.70], [-136.18,10.31]], homepageMapZoomOptions);
  } else {
    jQuery.ajax({
      url: DOPAgetCountryExtent+iso2,
      dataType: 'json',
      success: function(d) {

        thisMap.fitBounds(jQuery.parseJSON(d.records[0].extent), homepageMapZoomOptions);
      },
      error: function() {
        console.log("Something is wrong with the REST servce for country bounds")
      }
    });
  }
}

function zoomToPA(wdpaid){
	selSettings.WDPAID = wdpaid;
    jQuery.ajax({
      url: DOPAgetWdpaExtent+wdpaid,
      dataType: 'json',
      success: function(d) {
        thisMap.fitBounds(jQuery.parseJSON(d.records[0].extent), homepageMapZoomOptions);
		selSettings.paName = d.records[0].name;
		if (d.records[0].iso2 != selSettings.ISO2){
			selSettings.ISO2 = d.records[0].iso2;
		}
      },
      error: function() {
        console.log("Something is wrong with the REST servce for PA bounds")
      }
    });
}

//returns the first region object
function getMapRegion(point){
	var feature = thisMap.queryRenderedFeatures(point, {
		layers:["regionsMask"],
	});
	//as long as we have something in the feature query 
	if (typeof feature[0] !== 'undefined'){
		return feature[0];
	} 
}

//returns the first country object
function getMapCountry(point){
	var feature = thisMap.queryRenderedFeatures(point, {
		layers:["countryMask"],
	});
	//as long as we have something in the feature query 
	if (typeof feature[0] !== 'undefined'){
		return feature[0];
	}
}

//returns a list of PA objects
function getMapPAs(point){
	var paFeatures = thisMap.queryRenderedFeatures(point, {
		layers:["wdpaAcpMask"]
	});
	if (typeof paFeatures[0] !== 'undefined'){
		return paFeatures;
	}
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc