Get service area GeoJSON from server, show preloader spinner
This commit is contained in:
parent
35436dec09
commit
10c0e406cb
@ -8,176 +8,79 @@
|
||||
function loadServiceAreaMap() {
|
||||
if (MapControl.supported()) {
|
||||
if (serviceAreaMap == null) {
|
||||
app.preloader.show();
|
||||
var mapboxel = document.getElementById("mapbox-servicearea");
|
||||
serviceAreaMap = new MapControl(mapboxel, true);
|
||||
serviceAreaMap.reloadMap();
|
||||
var serviceAreaMapLoaded = false;
|
||||
|
||||
serviceAreaMap.mapObj.on('load', function () {
|
||||
serviceAreaMap.mapObj.jumpTo({center: [-112.005, 46.589], zoom: 9});
|
||||
serviceAreaMap.mapObj.addSource('servicearea', {
|
||||
'type': 'geojson',
|
||||
'data': {
|
||||
"type": "FeatureCollection",
|
||||
"features": [
|
||||
{
|
||||
"type": "Feature",
|
||||
"properties": {
|
||||
"label": "Notary"
|
||||
},
|
||||
"geometry": {
|
||||
"type": "Polygon",
|
||||
"coordinates": [
|
||||
[
|
||||
[
|
||||
-111.94158554077148,
|
||||
46.75621029973824
|
||||
],
|
||||
[
|
||||
-112.09058761596678,
|
||||
46.73880181507399
|
||||
],
|
||||
[
|
||||
-112.11393356323242,
|
||||
46.594849313729064
|
||||
],
|
||||
[
|
||||
-112.13109970092773,
|
||||
46.53135096527468
|
||||
],
|
||||
[
|
||||
-112.05350875854492,
|
||||
46.51410624997797
|
||||
],
|
||||
[
|
||||
-111.92647933959961,
|
||||
46.50819926727706
|
||||
],
|
||||
[
|
||||
-111.83721542358398,
|
||||
46.537491596723235
|
||||
],
|
||||
[
|
||||
-111.79738998413086,
|
||||
46.63800459887636
|
||||
],
|
||||
[
|
||||
-111.86948776245116,
|
||||
46.738095947110935
|
||||
],
|
||||
[
|
||||
-111.94158554077148,
|
||||
46.75621029973824
|
||||
]
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Feature",
|
||||
"properties": {
|
||||
"label": "Courier"
|
||||
},
|
||||
"geometry": {
|
||||
"type": "Polygon",
|
||||
"coordinates": [
|
||||
[
|
||||
[
|
||||
-111.40274047851562,
|
||||
46.2957133089894
|
||||
],
|
||||
[
|
||||
-111.42059326171874,
|
||||
46.49082901981415
|
||||
],
|
||||
[
|
||||
-111.62109375,
|
||||
46.64755071082884
|
||||
],
|
||||
[
|
||||
-111.80923461914062,
|
||||
46.800999519926314
|
||||
],
|
||||
[
|
||||
-111.92184448242188,
|
||||
46.991494313050424
|
||||
],
|
||||
[
|
||||
-111.90261840820312,
|
||||
47.09537035351024
|
||||
],
|
||||
[
|
||||
-112.02346801757812,
|
||||
47.15236927446393
|
||||
],
|
||||
[
|
||||
-112.24456787109375,
|
||||
47.09163058564968
|
||||
],
|
||||
[
|
||||
-112.38704681396484,
|
||||
46.93901161506044
|
||||
],
|
||||
[
|
||||
-112.39013671875,
|
||||
46.72856582519053
|
||||
],
|
||||
[
|
||||
-112.36953735351562,
|
||||
46.53052428878426
|
||||
],
|
||||
[
|
||||
-112.16285705566406,
|
||||
46.430285240839964
|
||||
],
|
||||
[
|
||||
-112.02896118164061,
|
||||
46.35522171093644
|
||||
],
|
||||
[
|
||||
-111.6815185546875,
|
||||
46.31089291474789
|
||||
],
|
||||
[
|
||||
-111.47415161132812,
|
||||
46.29761098988109
|
||||
],
|
||||
[
|
||||
-111.40274047851562,
|
||||
46.2957133089894
|
||||
]
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
serviceAreaMapLoaded = true;
|
||||
});
|
||||
|
||||
apirequest(SETTINGS.apis.servicearea, {}, function (resp) {
|
||||
var loadWhenMapReady = function () {
|
||||
if (serviceAreaMapLoaded) {
|
||||
setupServiceAreaMap(resp);
|
||||
} else {
|
||||
setTimeout(function () {
|
||||
loadWhenMapReady();
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
serviceAreaMap.mapObj.addLayer({
|
||||
'id': 'courierservicearea',
|
||||
'type': 'fill',
|
||||
'source': 'servicearea',
|
||||
'paint': {
|
||||
'fill-color': '#005387',
|
||||
'fill-opacity': 0.4
|
||||
},
|
||||
'filter': ['==', 'label', 'Courier']
|
||||
});
|
||||
serviceAreaMap.mapObj.addLayer({
|
||||
'id': 'notaryservicearea',
|
||||
'type': 'fill',
|
||||
'source': 'servicearea',
|
||||
'paint': {
|
||||
'fill-color': '#008733',
|
||||
'fill-opacity': 0.4
|
||||
},
|
||||
'filter': ['==', 'label', 'Notary']
|
||||
});
|
||||
}
|
||||
loadWhenMapReady();
|
||||
}, function (xhr) {
|
||||
app.preloader.hide();
|
||||
try {
|
||||
var error = $.parseJSON(xhr.responseText);
|
||||
if (error && typeof error.msg != 'undefined') {
|
||||
app.dialog.alert(error.msg, "Error");
|
||||
sendErrorReport("Service Area", "Couldn't get service area GeoJSON", error.msg);
|
||||
} else {
|
||||
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
|
||||
sendErrorReport("Service Area", "Couldn't get service area GeoJSON", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
|
||||
}
|
||||
} catch (ex) {
|
||||
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
|
||||
sendErrorReport("Service Area", "Couldn't get service area GeoJSON", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
showWebGLErrorMessage();
|
||||
app.preloader.hide();
|
||||
}
|
||||
}
|
||||
|
||||
function setupServiceAreaMap(geojson) {
|
||||
app.preloader.hide();
|
||||
serviceAreaMap.mapObj.jumpTo({center: [-112.005, 46.589], zoom: 9});
|
||||
serviceAreaMap.mapObj.addSource('servicearea', {
|
||||
'type': 'geojson',
|
||||
'data': geojson
|
||||
});
|
||||
serviceAreaMap.mapObj.addLayer({
|
||||
'id': 'courierservicearea',
|
||||
'type': 'fill',
|
||||
'source': 'servicearea',
|
||||
'paint': {
|
||||
'fill-color': '#005387',
|
||||
'fill-opacity': 0.4
|
||||
},
|
||||
'filter': ['==', 'label', 'Courier']
|
||||
});
|
||||
serviceAreaMap.mapObj.addLayer({
|
||||
'id': 'notaryservicearea',
|
||||
'type': 'fill',
|
||||
'source': 'servicearea',
|
||||
'paint': {
|
||||
'fill-color': '#008733',
|
||||
'fill-opacity': 0.4
|
||||
},
|
||||
'filter': ['==', 'label', 'Notary']
|
||||
});
|
||||
}
|
||||
|
||||
function openServiceAreaExtraChargeInfo() {
|
||||
app.dialog.alert("If you need a notary outside the green zone, the travel fee will be calculated \n\
|
||||
using the current IRS mileage rate. If you need courier service outside the blue zone, we can accomodate \n\
|
||||
|
@ -42,7 +42,9 @@ var SETTINGS = {
|
||||
walletbalance: "http://localhost/helena.express/apis/crypto/walletbalance",
|
||||
getutxo: "http://localhost/helena.express/apis/crypto/getutxo",
|
||||
broadcasttransaction: "http://localhost/helena.express/apis/crypto/broadcasttransaction",
|
||||
cryptofees: "http://localhost/helena.express/apis/crypto/fees"
|
||||
cryptofees: "http://localhost/helena.express/apis/crypto/fees",
|
||||
// Service area map
|
||||
servicearea: "http://localhost/helena.express/apis/servicearea"
|
||||
},
|
||||
stripe_pubkey: "pk_test_51J6qFXCa1Fboir5UzPO3LCiMsVNiFP2lq4wR0dEcjJJVzAaJ3uRggDekZPB3qeYpMD3ayIYHKyD5sSn0IFLlEXMW001LqrvGSH",
|
||||
branding: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user