This is a simple Leaflet map using a static GeoJSON file (BaseBallFinal.json) I use JQuery's getJSON function to read the file. I start with the basic map view and basemap, here I use osm (OpenStreetMap), define what the layer is going to look like, I chose circleMarker, and define the popup format and data. Last I read the GeoJSON file and add the data to the layer. This map is similar to my first map but now I have extra code to define colors for the circleMarker.
<!DOCTYPE html> <html> <head> <title>GeoJSON tutorial - Leaflet</title> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.3/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet@1.0.3/dist/leaflet.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<style> #map { width: 800px; height: 600px; } </style>
</head> <body> <div id="map" > </div> <script> var url = 'BaseBallFinal.json'; // my GeoJSON data source, in the same folder as my HTML file.
var map = L.map('map').setView([37.52715,-96.877441], 4); var osm=new L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png',{ attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'});
// Set function for color ramp function getColor(league){ return league == 'NL' ? 'blue' : league == 'AL' ? 'red' : 'white'; }
function forEachFeature(feature, layer) { var popupContent = "<p>The <b>" + feature.properties.Team + "</b> play here,</br> They are in the " + feature.properties.League + "</br>" + '<a href="'+ feature.properties.Website +'" target="_blank">Website</a></p>' ; if (feature.properties && feature.properties.popupContent) { popupContent += feature.properties.popupContent; } layer.bindPopup(popupContent); };
var bbTeam = L.geoJSON(null, { onEachFeature: forEachFeature, pointToLayer: function (feature, latlng) { return L.circleMarker(latlng, { radius:6, opacity: .5, //color: "#000", color:getColor(feature.properties.League), fillColor: getColor(feature.properties.League), fillOpacity: 0.8 }).bindTooltip(feature.properties.Name); } });
// Get GeoJSON data and create features. $.getJSON(url, function(data) { bbTeam.addData(data); }); bbTeam.addTo(map);
</script> </body> </html>