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.

115 lines
2.9 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/.
*/
function maplibreMap() {
var theme = "liberty";
$("#mapbox").css("background-color", "#EFEFEF");
var map = new mapboxgl.Map({
container: 'mapbox',
style: "https://maps.netsyms.net/styles/osm-liberty/style.json",
//attributionControl: false,
interactive: true,
pitch: 0,
zoom: 1,
maxZoom: 20,
center: [-97, 38]
});
map.on('click', function (e) {
var coordinates = e.lngLat;
$.getJSON("lookup.php", {
latitude: coordinates.lat,
longitude: coordinates.lng
}, function (resp) {
new mapboxgl.Popup()
.setLngLat(coordinates)
.setHTML("<b>" + resp.words + "</b><br>" + resp.coords[0] + ", " + resp.coords[1])
.addTo(map);
});
});
map.addControl(new mapboxgl.NavigationControl({
visualizePitch: true
}), 'top-left');
map.addControl(new mapboxgl.GeolocateControl({
positionOptions: {
enableHighAccuracy: true,
timeout: 10 * 1000
},
fitBoundsOptions: {
maxZoom: 16
},
trackUserLocation: true
}), 'top-left');
map.addControl(new mapboxgl.ScaleControl({
unit: "imperial"
}));
map.mapEasing = function (t) {
return t * (2 - t);
};
map.setMapHeading = function (heading) {
if (typeof heading == 'number') {
map.easeTo({
bearing: heading,
easing: map.mapEasing
});
}
};
map.setMapLocation = function (latitude, longitude) {
map.easeTo({
center: [
longitude,
latitude
]
});
};
map.animateMapIn = function (latitude, longitude, zoom, heading) {
if (typeof zoom == 'undefined') {
zoom = 10;
}
if (typeof heading == 'undefined') {
heading = 0;
}
map.flyTo({
center: [
longitude,
latitude
],
speed: 1,
zoom: zoom,
heading: heading,
pitch: 0
});
};
map.addMarker = function (latitude, longitude) {
var el = document.createElement("div");
el.className = "map-marker";
new mapboxgl.Marker(el).setLngLat([longitude, latitude]).addTo(map);
};
map.removeMarkers = function () {
var oldmarkers = document.getElementsByClassName("map-marker");
if (oldmarkers.length > 0) {
markerparent = oldmarkers[0].parentNode;
while (oldmarkers.length > 0) {
markerparent.removeChild(oldmarkers[0]);
}
}
}
return map;
}