Leaflet Experiements ('-' * 21)
A Pen by Jordan Cauley on CodePen.
<div class="container"><div id="map" class="map"> | |
</div> | |
</div> | |
<div class="container"> | |
<div id="cards" class="row"></div> | |
</div> |
Leaflet Experiements ('-' * 21)
A Pen by Jordan Cauley on CodePen.
(function(){ | |
var Store = new Object(); | |
function renderMan(){ | |
var cards = Store.cards; | |
var container = document.getElementById('cards'); | |
container.innerHTML = ''; | |
for(var i = 0, x = cards.length; i < x; i++){ | |
var div = document.createElement('div'); | |
div.className = 'col-sm-3'; | |
var img = document.createElement('img'); | |
img.className = 'img-responsive'; | |
img.src = cards[i].acf.card_image; | |
div.appendChild(img); | |
container.appendChild(div); | |
} | |
} | |
// Init Map | |
var tiles = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { | |
maxZoom: 18, | |
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' | |
}), | |
latlng = L.latLng(35.9608666,-80.0036151), | |
map = L.map('map', {center: latlng, zoom: 15, layers: [tiles]}); | |
var markers = new L.MarkerClusterGroup({ | |
disableClusteringAtZoom: 18, | |
iconCreateFunction: function(cluster) { | |
return new L.DivIcon({ html: '<b>' + cluster.getChildCount() + '</b>' }); | |
} | |
}); | |
function markerClick(){ | |
console.log(this); | |
} | |
$.getJSON("http://jordancauley.com/assets/js/sample.jsonp", function(data){ | |
var locations = new Array(); | |
for(var i = 0, x = data.length; i < x; i++){ | |
data[i].id = i; | |
if(data[i].latitude && data[i].longitude){ | |
var site = new Object(); | |
site.building_name = data[i].building_name; | |
site.latitude = data[i].latitude; | |
site.longitude = data[i].longitude; | |
site.display_busstop = data[i].display_busstop; | |
site.display_location = data[i].display_location; | |
site.id = i; | |
if(locations.length === 0){ | |
locations.push(site); | |
} else { | |
for(var j = 0, x = locations.length; j < x; j++){ | |
if((locations[j].latitude === data[i].latitude) && (locations[j].longitude === data[i].longitude)){ | |
} else { | |
locations.push(site); | |
} | |
} | |
} | |
/* var marker = L.marker([data[i].latitude,data[i].longitude], { title: i }); | |
marker.data = data[i]; | |
marker.number = i; | |
marker.on('click', markerClick); | |
markers.addLayer(marker); */ | |
} | |
} | |
Store.exhibitors = data; | |
Store.locations = locations; | |
console.log(Store); | |
for(var i = 0, x = locations.length; i < x; i++){ | |
console.log(locations[i]); | |
var marker = L.marker([locations[i].latitude,locations[i].longitude], { title: i }); | |
marker.data = data[i]; | |
marker.number = i; | |
marker.on('click', markerClick); | |
markers.addLayer(marker); | |
} | |
map.addLayer(markers); | |
}); | |
})(); |
html, body{ | |
margin: 0; | |
padding: 0; | |
} | |
.map{ | |
height: 400px; | |
width: 100%; | |
} | |
.mycluster{ | |
background-color: #fff; | |
padding: 20px; | |
border-radius: 50%; | |
text-align: center; | |
vertical-align: middle | |
} |