//Utility functions for map info window
function mapit(lat,lon,zoom,id) {
map = L.map(document.getElementById("map-wrapper-"+id));
centerCoord = new L.LatLng(lat, lon);
zoom = zoom;
L.tileLayer.provider('Esri.WorldTopoMap', {maxZoom: 18, attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Tiles © Esri and the GIS User Community'}).addTo(map);
map.setView(centerCoord, zoom);
////get the geojson for this map
$.ajax({
url: "/projects/data/natparks/"+id+".json",
dataType: "json",
success: function(data, text, request) { draw_poly(data, map); }
//complete: function(xhr, status) {console.log(status); return false; },
});
//draw the polygon
function draw_poly(data, map) {
var myStyle = {
"color": "#201a11",
"weight": 2,
"opacity": 0.65
};
L.geoJson(data, {
style: myStyle
}).addTo(map);
}
}
// utility functions to create/remove map container
function create_map(obj) {
var lat = parseFloat(obj.attr('data-latitude'));
var lon = parseFloat(obj.attr('data-longitude'));
var zoom= parseInt(obj.attr('data-zoom'));
var id= obj.attr('data-id');
//create container divs
$(obj).parents().eq(3).append('
');
$('#map-container-'+id).append('
');
mapit(lat,lon,zoom,id);
}
function remove_map(id) {
$(id).remove();
}
//functions to handle the "more" link
// utility functions to create/remove camera info container
function get_exif(obj,id) {
//$(obj).parents().eq(2).append('
');
$(obj).parents().eq(3).append('
'); $(obj).parents().eq(2).children('.meta').clone().appendTo('#'+id).css('visibility', 'visible');
//deal with the variable height of div.legend
$('#exif-container').css({
bottom: function(index, value) {
return parseFloat($(obj).parent().parent().css("height"))-14;
}
});
}
function remove_exif(id) {
$('#'+id).remove();
}
$(document).ready(function(){
//set up click events for map button
$('.map-link').click( function() {
var more_id = 'more-container-'+$(this).parent().next().children('.more-link').attr('id').split('-')[1];
var id = '#map-container-'+$(this).attr('data-id');
if ($('#'+more_id).is(":visible")){
remove_exif(more_id);
}
if ($(id).is(":visible")) {
remove_map(id);
} else {
create_map($(this));
}
return false;
});
//set up click events for more info button
$('.more-link').click( function() {
var map_id = '#map-container-'+$(this).parent().prev().children('.map-link').attr('data-id');
var id = 'more-container-'+this.id.split('-')[1];
if ($(map_id).is(":visible")){
remove_map(map_id);
}
if ($('#'+id).is(":visible")) {
remove_exif(id);
} else {
get_exif(this, id);
}
return false;
});
});