You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.6 KiB
JavaScript
68 lines
1.6 KiB
JavaScript
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
var userPositionIsReal = false;
|
|
var userposition = {
|
|
coords: {
|
|
latitude: 46.595,
|
|
longitude: -112.019,
|
|
accuracy: 10000
|
|
}
|
|
};
|
|
|
|
var leafletmap = L.map('map', {
|
|
minZoom: 12,
|
|
maxZoom: 20
|
|
});
|
|
|
|
leafletmap.attributionControl.setPrefix("");
|
|
var leafletgllayer = L.mapboxGL({
|
|
attribution: "© OpenMapTiles © OpenStreetMap contributors",
|
|
accessToken: 'none',
|
|
style: SETTINGS["map_style_json"],
|
|
pitch: 0
|
|
});
|
|
|
|
leafletgllayer.addTo(leafletmap);
|
|
|
|
|
|
function recenterMapPosition() {
|
|
var zoom = 13;
|
|
if (userposition.coords.accuracy < 1000) {
|
|
zoom = 15;
|
|
}
|
|
leafletmap.setView([userposition.coords.latitude, userposition.coords.longitude], zoom);
|
|
}
|
|
|
|
function recenterMapToUserPosition() {
|
|
if (userPositionIsReal == false) {
|
|
getLocation(function (position) {
|
|
userposition = position;
|
|
userPositionIsReal = true;
|
|
recenterMapPosition();
|
|
});
|
|
} else {
|
|
recenterMapPosition();
|
|
}
|
|
}
|
|
|
|
// Attempt to get user location
|
|
watchLocation(function (position) {
|
|
userposition = position;
|
|
if (userPositionIsReal == false) {
|
|
recenterMapPosition();
|
|
userPositionIsReal = true;
|
|
}
|
|
});
|
|
|
|
// Set map to default position
|
|
recenterMapPosition();
|
|
// Load nearby
|
|
updateMap();
|
|
// Watch for map moving
|
|
leafletmap.on("moveend", function () {
|
|
updateMap();
|
|
}); |