biopama_protected_areas-8.x-1.3/js/search/search_map_interaction.js

js/search/search_map_interaction.js
jQuery(document).ready(function($) {
	thisMap.on('click', getFeatureInfo);
	
	function getFeatureInfo(e){
		var CountrySelected = countryCheck(e);
		var pasSelected = paCheck(e);
		var countryText = '';
		var pasText = '';

		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'>" +
				countryText +
				pasText +
				"</div>";
		if (paPopupContent.length > 63){
			new mapboxgl.Popup()
			.setLngLat(e.lngLat)
			.setHTML(paPopupContent)
			.addTo(thisMap);
		}
		
	}

	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 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 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