forked from community/device-mgt-plugins
parent
11dbd9cf38
commit
9361203e59
@ -1,127 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
|
||||||
* in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
|
||||||
* either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var map;
|
|
||||||
var isAnalitics = false;
|
|
||||||
var marker;
|
|
||||||
|
|
||||||
function loadLeafletMap(refresh) {
|
|
||||||
|
|
||||||
var deviceLocationID = "#device-location",
|
|
||||||
locations = $(deviceLocationID).data("locations"),
|
|
||||||
location_lat = $(deviceLocationID).data("lat"),
|
|
||||||
location_long = $(deviceLocationID).data("long"),
|
|
||||||
container = "device-location",
|
|
||||||
zoomLevel = 13,
|
|
||||||
tileSet = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
|
||||||
attribution = "© <a href='https://openstreetmap.org/copyright'>OpenStreetMap</a> contributors";
|
|
||||||
|
|
||||||
if (refresh && !isAnalitics) {
|
|
||||||
|
|
||||||
$("#map-spinner").removeClass("hidden");
|
|
||||||
var applicationsList = $("#applications-list");
|
|
||||||
var deviceId = applicationsList.data("device-id");
|
|
||||||
var deviceType = applicationsList.data("device-type");
|
|
||||||
invokerUtil.get(
|
|
||||||
"/api/device-mgt/v1.0/devices/" + deviceType + "/" + deviceId + "/location",
|
|
||||||
// success-callback
|
|
||||||
function (data, textStatus, jqXHR) {
|
|
||||||
if (jqXHR.status == 200 && data) {
|
|
||||||
data = JSON.parse(data);
|
|
||||||
if (data.latitude && data.longitude) {
|
|
||||||
map.removeLayer(marker);
|
|
||||||
// marker = L.marker([6.912853, 79.855635], {"opacity": opacVal}).addTo(map).bindPopup("Your device is here");
|
|
||||||
marker = L.marker([data.latitude, data.longitude], {"opacity": opacVal}).addTo(map).bindPopup("Your device is here");
|
|
||||||
map.panTo(new L.LatLng(data.latitude, data.longitude));
|
|
||||||
// map.panTo(new L.LatLng(40.737, -73.923));
|
|
||||||
marker.on('mouseover', function (e) {
|
|
||||||
this.openPopup();
|
|
||||||
});
|
|
||||||
marker.on('mouseout', function (e) {
|
|
||||||
this.closePopup();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
$("#map-spinner").addClass("hidden");
|
|
||||||
} else {
|
|
||||||
$("#map-spinner").adddClass("hidden");
|
|
||||||
$("#device-location").hide();
|
|
||||||
$("#map-error").show();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// error-callback
|
|
||||||
function () {
|
|
||||||
$("#map-spinner").addClass("hidden");
|
|
||||||
$("#device-location").hide();
|
|
||||||
$("#map-error").show();
|
|
||||||
});
|
|
||||||
|
|
||||||
} else if (locations && locations.locations.length > 0) {
|
|
||||||
isAnalitics = true;
|
|
||||||
var locationSets = locations.locations;
|
|
||||||
map = L.map(container).setView([locationSets[0].lat, locationSets[0].lng], zoomLevel);
|
|
||||||
L.tileLayer(tileSet, {attribution: attribution}).addTo(map);
|
|
||||||
|
|
||||||
var initTime = locations.times[0].time, lastTime = locations.times[locationSets.length - 1].time;
|
|
||||||
var totalTime = lastTime - initTime;
|
|
||||||
for (var i = 0; i < locationSets.length; i++) {
|
|
||||||
var opacVal = (locations.times[i].time - initTime) / totalTime;
|
|
||||||
var m = L.marker(locationSets[i], {"opacity": opacVal}).addTo(map).bindPopup(new Date(locations.times[i].time).toISOString());
|
|
||||||
m.on('mouseover', function (e) {
|
|
||||||
this.openPopup();
|
|
||||||
});
|
|
||||||
m.on('mouseout', function (e) {
|
|
||||||
this.closePopup();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
$("#map-error").hide();
|
|
||||||
$("#device-location").show();
|
|
||||||
setTimeout(function () {
|
|
||||||
map.invalidateSize()
|
|
||||||
}, 400);
|
|
||||||
|
|
||||||
} else if (location_long && location_lat) {
|
|
||||||
map = L.map(container).setView([location_lat, location_long], zoomLevel);
|
|
||||||
L.tileLayer(tileSet, {attribution: attribution}).addTo(map);
|
|
||||||
|
|
||||||
marker = L.marker([location_lat, location_long], {"opacity": opacVal}).addTo(map).bindPopup("Your device is here");
|
|
||||||
marker.on('mouseover', function (e) {
|
|
||||||
this.openPopup();
|
|
||||||
});
|
|
||||||
marker.on('mouseout', function (e) {
|
|
||||||
this.closePopup();
|
|
||||||
});
|
|
||||||
$("#map-error").hide();
|
|
||||||
$("#device-location").show();
|
|
||||||
setTimeout(function () {
|
|
||||||
map.invalidateSize()
|
|
||||||
}, 400);
|
|
||||||
} else {
|
|
||||||
$("#device-location").hide();
|
|
||||||
$("#map-error").show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(function () {
|
|
||||||
$(".location_tab").on("click", function () {
|
|
||||||
loadLeafletMap(false);
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#refresh-location").on("click", function () {
|
|
||||||
loadLeafletMap(true);
|
|
||||||
});
|
|
||||||
});
|
|
Loading…
Reference in new issue