First, load jQuery 1.10.2 or the newest version of jQuery (2.0 onward does not support Internet Explorer 6, 7, or 8) in the header:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
Next, in your leaflet script at the bottom of the body, you'll need to add all your other code and your basemap, like normal, for example:
var map = L.map('map').setView([38.0740, -55], 3); function onEachFeature(feature, layer) { layer.bindPopup(feature.properties.City + ", " + feature.properties.State + ", " + feature.properties.Country); }
Then, you can just use jQuery to get the JSON or GeoJSON file. A simple version of this would be:
$.getJSON("cities.geoJSON", function (cities) { L.geoJson(cities).addTo(map); })
But you can also add more options to your L.geoJson code, just like you would if using data stored in the HTML file. For example:
$.getJSON("cities.geoJSON", function (cities) { L.geoJson(cities, { onEachFeature: onEachFeature, pointToLayer: function (feature, latlng) { switch (feature.properties.Remember) { case '1': return L.marker(latlng, {icon: visitedIcon}); case '?': return L.marker(latlng, {icon: uncertainIcon}); case '0': return L.marker(latlng, {icon: uncertainIcon}); } } }).addTo(map); })
So just a couple lines of jQuery allow you to store your JSON or GeoJSON data in a separate file.
The example code is available in a gist and the example is viewable here.
No comments:
Post a Comment