<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.css" data-require="leaflet@0.7.3" data-semver="0.7.3" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div id="map"></div>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.js" data-require="leaflet@0.7.3" data-semver="0.7.3"></script>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
var map = L.map('map', {
'center': [54.435, 18.505],
'zoom': 0,
'layers': [
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
'attribution': 'Map data © OpenStreetMap contributors'
})
]
});
var rower = {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
"colour": "blue"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-45, -45],
[-45,45]
]
}
},{
"type": "Feature",
"properties": {
"colour": "red"
},
"geometry": {
"type": "LineString",
"coordinates": [
[45, -45],
[45,45]
]
}
},{
"type": "Feature",
"properties": {
"colour": "yellow"
},
"geometry": {
"type": "LineString",
"coordinates": [
[0, -45],
[0,45]
]
}
}]
};
function highlight (layer) {
layer.setStyle({
weight: 5,
dashArray: ''
});
if (!L.Browser.ie && !L.Browser.opera) {
layer.bringToFront();
}
}
function dehighlight (layer) {
if (selected === null || selected._leaflet_id !== layer._leaflet_id) {
geojson.resetStyle(layer);
}
}
function select (layer) {
if (selected !== null) {
var previous = selected;
}
map.fitBounds(layer.getBounds());
selected = layer;
if (previous) {
dehighlight(previous);
}
}
var selected = null;
var geojson = L.geoJson(rower, {
style: function (feature) {
return {
weight: 2,
opacity: 1,
color: feature.properties.colour,
dashArray: 3,
};
},
onEachFeature: function (feature, layer) {
layer.on({
'mouseover': function (e) {
highlight(e.target);
},
'mouseout': function (e) {
dehighlight(e.target);
},
'click': function (e) {
select(e.target);
}
});
}
}).addTo(map);
body {
margin: 0;
}
html, body, #map {
height: 100%;
}