jQuery(document).ready(function($) { // only render the map if an api-key is present if( typeof leaflet_field.api_key != 'undefined' ) { render_leaflet_map(); } function render_leaflet_map() { if( typeof leaflet_field.value == 'object' ) { map_settings = leaflet_field.value; } else { map_settings = { zoom_level:null, center:{ lat:null, lng:null }, markers:{} }; } if( map_settings.center.lat == null ) { map_settings.center.lat = leaflet_field.lat; } if( map_settings.center.lng == null ) { map_settings.center.lng = leaflet_field.lng; } // check if the zoom level is set and within 1-18 if( map_settings.zoom_level == null || map_settings.zoom_level > 18 || map_settings.zoom_level < 1 ) { if( leaflet_field.zoom_level > 0 && leaflet_field.zoom_level < 19 ) { map_settings.zoom_level = leaflet_field.zoom_level; } else { map_settings.zoom_level = 13; } } var map = L.map( leaflet_field.id + '_map', { center: new L.LatLng( map_settings.center.lat, map_settings.center.lng ), zoom: map_settings.zoom_level, doubleClickZoom: true }); L.tileLayer('http://{s}.tile.cloudmade.com/' + leaflet_field.api_key + '/997/256/{z}/{x}/{y}.png', { attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © CloudMade', maxZoom: 18 }).addTo(map); if( Object.keys(map_settings.markers).length > 0 ) { $.each(map_settings.markers, function(index, marker) { new_marker = L.marker( [marker.coords.lat, marker.coords.lng] ); if( typeof marker.popup_content != 'undefined' ) { new_marker.bindPopup(marker.popup_content); } map.addLayer( new_marker ); }); } } });