//maps variable
const MAP_ENDPOINT = "https://rmsmap.rmto.ir";
const MAP_MIN_ZOOM = 5;
const MAP_MAX_ZOOM = 10;
var bounds = [
[46.9130026312, 77.6166317076],
[17.5782370061, 32.5092252948],
];
var mymap;
var current_year = new persianDate().year();
var jalali_to_Gregorian;
var queryParems = [];
var queryNames=[];
var markerLayercluster = null;
var currentDate = {};
var date_array = [];
function showLoaderScreen() {
$(".divloader").css("display", "flex").hide().fadeIn();
}
function hideLoaderScreen() {
$(".divloader").fadeOut();
}
var purpleIcon = L.divIcon({
className: "custom-div-icon",
html: "",
iconSize: [32, 44],
});
var pinkIcon = L.divIcon({
className: "custom-div-icon",
html: "",
iconSize: [32, 44],
});
var greenIcon = L.divIcon({
className: "custom-div-icon",
html: "",
iconSize: [32, 44],
});
var redIcon = L.divIcon({
className: "custom-div-icon",
html: "",
iconSize: [32, 44],
});
var blueIcon = L.divIcon({
className: "custom-div-icon",
html: "",
iconSize: [32, 44],
});
var iranLayer = L.tileLayer(
"https://rmsmap.rmto.ir/141map/{z}/{x}/{y}.png",
{}
);
(function () {
buildMap().then(()=>{
getProvinceList().then(()=>{
getYearList().then(()=>{
UncheckAll();
});
});
});
})();
function getProvinceList() {
return new Promise(function(resolve) {
$.ajax({
url: `https://rms.rmto.ir/webapi/getuser/province-perm?type=all`,
type: "GET",
beforeSend: function() {
showLoaderScreen();
},
success: function(result) {
const provinces = result.data;
$(".province-list").empty();
provinces.map((item,index) => {
$(".province-list").append(`
${item.name_fa}
`)
});
hideLoaderScreen();
},
error: function(error) {
hideLoaderScreen();
Swal.fire({
icon: "error",
title: "خطا",
text: "مشکل در دریافت استان ها",
confirmButtonText: "بروزرسانی صفحه",
showLoaderOnConfirm: true,
preConfirm: () => {
location.reload(true);
},
});
},
});
resolve();
})
}
function getYearList() {
return new Promise(function(resolve) {
for (let i = 1398; i <= current_year; i++) {
currentDate.from = moment(i, "jYYYY");
currentFilterQueryfrom = currentDate.from.locale("en").format("YYYY-MM-DD");
currentDate.to = moment(i, "jYYYY");
currentDate.to.add(1, "year");
currentFilterQueryto = currentDate.to.locale("en").format("YYYY-MM-DD");
$(".year-list").append(`
${i}
`);
}
resolve();
})
}
function buildMap(){
return new Promise(function(resolve) {
mymap =L.map("mymap", {
maxBounds: bounds,
minZoom: 6,
}).setView([35.5468992, 51.7300532], 6);
L.tileLayer(MAP_ENDPOINT + "/141map/{z}/{x}/{y}.png", {}).addTo(mymap);
resolve();
})
}
$(document).on("click", ".guid-custom-box-DailyAccident input", function () {
queryParems=[];
if ($(this).is(":checked")) {
if (queryNames.length!=0) {
if (queryNames.filter(e => e.name === $(this).parent().parent().data('name')).length > 0) {
if (($(this).parent().parent().data('name')==="day_part")){
var index = queryNames.findIndex(x => x.name === $(this).parent().parent().data('name'));
queryNames[index].value = $(this).val();
}
else {
var index = queryNames.findIndex(x => x.name === $(this).parent().parent().data('name'));
queryNames[index].value = [...queryNames[index].value, $(this).val()];
}
}
else {
queryNames.push({name:$(this).parent().parent().data('name'),value:[$(this).val()]});
}
}
else {
queryNames.push({name:$(this).parent().parent().data('name'),value:[$(this).val()]});
}
}
else {
if (($(this).parent().parent().data('name')==="year")){
$('.year-list').find('.year-checkbox:checked').each(function( index ) {
date_array = jQuery.grep(date_array, function(value) {
return value != `from_date[${index}]=${$(this).data("from")}&to_date[${index}]=${$(this).data("to")}`;
});
});
}
else {
if (queryNames.filter(e => e.name === $(this).parent().parent().data('name')).length > 0) {
var index = queryNames.findIndex(x => x.name === $(this).parent().parent().data('name'));
queryNames[index].value=queryNames[index].value.filter((el)=> el!==$(this).val());
}
}
}
GetData();
});
function showPointsOnMap(data){
removeAccidentMarker().then(()=>{
addClusterMarkers(data).then(()=>{
hideLoaderScreen()
})
});
}
function addClusterMarkers(data) {
return new Promise(function(resolve) {
markerLayercluster = L.markerClusterGroup();
let markerList = [];
data.map((item,index) => {
let marker = null;
if (item.lat!=null && item.lng!=null){
marker = L.marker([item.lat, item.lng], {
icon: purpleIcon,
}).on("click", function () {
var popup = L.popup()
.setLatLng(this.getLatLng())
.setContent("در حال بروزرسانی ...")
.openOn(mymap);
$.ajax({
url: `https://rms.rmto.ir/daily_accident/${item.id}`,
type: "GET",
beforeSend: function() {
showLoaderScreen();
},
success: function(result) {
var chart_div= `