mirror of
https://github.com/owntracks/recorder.git
synced 2026-03-31 23:56:51 +00:00
75 lines
2.0 KiB
JavaScript
75 lines
2.0 KiB
JavaScript
// __author__ = 'Jan-Piet Mens <jpmens()gmail.com>'
|
|
// __copyright__ = 'Copyright 2015 Jan-Piet Mens'
|
|
|
|
// https://developers.google.com/maps/documentation/javascript/datalayer
|
|
|
|
var infowindow = new google.maps.InfoWindow();
|
|
|
|
function processPoints(geometry, callback, thisArg) {
|
|
if (geometry instanceof google.maps.LatLng) {
|
|
callback.call(thisArg, geometry);
|
|
} else if (geometry instanceof google.maps.Data.Point) {
|
|
callback.call(thisArg, geometry.get());
|
|
} else {
|
|
geometry.getArray().forEach(function(g) {
|
|
processPoints(g, callback, thisArg);
|
|
});
|
|
}
|
|
}
|
|
|
|
function initialize() {
|
|
|
|
var map;
|
|
var center = new google.maps.LatLng( 46.993665, 10.399188);
|
|
|
|
mapOptions = {
|
|
center: center,
|
|
zoom: 5,
|
|
mapTypeId: google.maps.MapTypeId.ROADMAP,
|
|
scrollwheel: false,
|
|
disableDefaultUI: false,
|
|
panControl: false,
|
|
scaleControl: false,
|
|
streetViewControl: true,
|
|
overviewMapControl: true,
|
|
};
|
|
|
|
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
|
|
|
|
var dataURL = location.protocol + "//" + location.host;
|
|
|
|
var parts = location.pathname.split('/');
|
|
for (var i = 1; i < parts.length - 2; i++) {
|
|
dataURL = dataURL + "/" + parts[i];
|
|
}
|
|
dataURL = dataURL + "/api/0/locations" + location.search;
|
|
|
|
console.log("dataURL = " + dataURL);
|
|
|
|
map.data.loadGeoJson(dataURL);
|
|
|
|
var circle ={
|
|
path: google.maps.SymbolPath.CIRCLE,
|
|
fillColor: '#ff0000',
|
|
fillOpacity: .9,
|
|
scale: 5.5,
|
|
strokeColor: 'white',
|
|
strokeWeight: 2
|
|
};
|
|
var featureStyle = {
|
|
strokeColor: 'red',
|
|
strokeWeight: 4,
|
|
icon: circle
|
|
};
|
|
map.data.setStyle(featureStyle);
|
|
|
|
// Zoom to show all the features
|
|
var bounds = new google.maps.LatLngBounds();
|
|
map.data.addListener('addfeature', function (e) {
|
|
processPoints(e.feature.getGeometry(), bounds.extend, bounds);
|
|
map.fitBounds(bounds);
|
|
});
|
|
}
|
|
|
|
google.maps.event.addDomListener(window, 'load', initialize);
|