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.
76 lines
2.7 KiB
JavaScript
76 lines
2.7 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 leafletnearbylayer = L.geoJson(
|
|
{
|
|
name: "Nearby Merchants",
|
|
type: "FeatureCollection",
|
|
features: [
|
|
{
|
|
type: "Feature",
|
|
geometry: {
|
|
type: "Point",
|
|
coordinates: [0, 0]
|
|
},
|
|
properties: {
|
|
id: "",
|
|
name: "",
|
|
address: "",
|
|
types: {}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
onEachFeature: function (feature, layer) {
|
|
if (feature.properties && feature.properties.popupContent) {
|
|
layer.bindPopup(feature.properties.popupContent);
|
|
}
|
|
},
|
|
pointToLayer: function (feature, latlng) {
|
|
var icon = "fas fa-store";
|
|
if (feature.properties.types.length > 0) {
|
|
icon = feature.properties.types[0].icon;
|
|
}
|
|
var marker = L.marker(latlng, {
|
|
icon: (new L.divIcon({
|
|
html: '<i class="' + icon + ' fa-fw"></i>',
|
|
iconSize: [20, 20],
|
|
className: 'fa-map-icon'
|
|
}))
|
|
});
|
|
return marker;
|
|
}
|
|
}
|
|
);
|
|
|
|
function updateMap() {
|
|
var diagonalMeters = leafletmap.getBounds().getNorthWest().distanceTo(leafletmap.getBounds().getSouthEast());
|
|
var radius = (diagonalMeters / 2.0) / 1609.344;
|
|
callAPIRawResponse("getmerchants", {
|
|
key: localStorage.getItem("key"),
|
|
latitude: leafletmap.getCenter().lat,
|
|
longitude: leafletmap.getCenter().lng,
|
|
radius: radius,
|
|
format: "geojson"
|
|
}, function (data) {
|
|
if (data.type == "FeatureCollection") {
|
|
leafletnearbylayer.clearLayers();
|
|
data.features.forEach(function (item) {
|
|
var icons = "";
|
|
item.properties.types.forEach(function (type) {
|
|
icons += "<i class=\"" + type.icon + "\"></i> " + type.name + "<br>";
|
|
});
|
|
item.properties.popupContent = (item.properties.name.length > 50 ? item.properties.name.substring(0, 50) + "..." : item.properties.name) + "<br><br>" + icons;
|
|
leafletnearbylayer.addData(item);
|
|
});
|
|
leafletmap.addLayer(leafletnearbylayer);
|
|
$(".leaflet-marker-icon").addClass("card-prevent-open");
|
|
}
|
|
});
|
|
} |