A connect-the-dots function for Leaflet point layers
HTML
<script src="http://cdn.leafletjs.com/leaflet-0.7.5/leaflet.js"></script>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.5/leaflet.css">
<div id="map"></div>
CSS
#map {
height: 500px;
}
JavaScript
var centerlat = 52;
var centerlon = 0;
// set default zoom level
var zoomLevel = 2;
// initialize map
var map = L.map('map').setView([centerlat, centerlon], zoomLevel);
// Set up the OSM layer
var background = L.tileLayer(
'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
{maxZoom: 18, opacity: 0.5}).addTo(map);
function onEachDot(feature, layer) {
layer.bindPopup('<table style="width:180px"><tbody><tr><td><div><b>name:</b></div></td><td><div>' + feature.properties.popup + '</div></td></tr><tr class><td><div><b>time:</b></div></td><td><div>' + feature.properties.time + '</div></td></tr></tbody></table>');
}
//create data and add it to the map
var spiralsteps = 60;
var spiral = make_spiral_json(spiralsteps, [centerlat, centerlon], 0, 1, 0.3, 0.97, 0.1, 0.1);
spiralLayer = L.geoJson(spiral, {
onEachFeature: onEachDot
});
spiralBounds = spiralLayer.getBounds();
map.fitBounds(spiralLayer);
spiralLayer.addTo(map);
function connectTheDots(data){
var c = [];
for(i in data._layers) {
var x = data._layers[i]._latlng.lat;
var y = data._layers[i]._latlng.lng;
c.push([x, y]);
}
return c;
}
spiralCoords = connectTheDots(spiralLayer);
console.log(spiralCoords);
var spiralLine = L.polyline(spiralCoords).addTo(map)
/////////////////////////////////////////////////////////////////////////////////////////////
//functions for creating synthetic GeoJSON data//
/////////////////////////////////////////////////////////////////////////////////////////////
//cheapo normrand function
function normish(mean, range) {
var num_out = ((Math.random() + Math.random() + Math.random() + Math.random() - 2) / 2) * range + mean;
return num_out;
}
//zero padding for time stamps
function zeroPad(num, places) {
var zero = places - num.toString().length + 1;
return Array(+(zero > 0 && zero)).join("0") + num;
}
function make_spiral_json(steps, init_pt, init_angle, init_dist, turn, persistence, wobble, lurch) {
...