var idPdrDelete = "";
var latUbicar;
var lngUbicar;
var PDREDIT = {};
var PUNTOEDIT = {};
var markerPDREDIT;
var markerPDRActual;
var markerPUNTOEDIT;
function editPdrMap(pdr){
var latLngPDR = new google.maps.LatLng({lat: parseFloat(pdr.latitud), lng: parseFloat(pdr.longitud)});
var icon = {
url : callIconBase(pdr.tipo_idtipo),
scaledSize : new google.maps.Size(40, 40)
};
markerPDRActual.setIcon(icon);
markerPDRActual.setPosition(latLngPDR);
if(infoWindow){ infoWindow.close();}
infoWindow.setContent(createPopup(obj));
infoWindow.open(map, markerPDRActual);
$("#ctr_" + pdr.id).on('click', function() {
$("#i_ctr_pt_id").val(pdr.id);
$("#i_ctr_tipo").val('1');
$("#modal_add_ctr").modal();
});
$("#comments-pdr-"+pdr.id).on('click', function() {
openModalComments(pdr.id,1);
});
}
function editPuntoMap(obj){
var dataL = {};
var icon;
var marker;
var m2 = {};
for(var i = 0; i < dataLayers.length; i++){
if(dataLayers[i].idCapa == obj.id_capa_ant){
for(var j = 0; j < dataLayers[i].markerList.length; j++){
if(dataLayers[i].markerList[j].id == obj.punto.id){
dataLayers[i].markerList.splice(j);
}
}
}
}
dataLayers.forEach(function(dl,i){
if(dl.idCapa == obj.id_capa){
dataL = dl;
}
});
dataL.markerList.forEach(function(m,im) {
if(m.metadata.id_punto == obj.punto.id){
m.setMap(null);
dataL.markerList.splice(im,1);
}
});
markersArray_PUNTOS.forEach(function(m,i) {
if (m.metadata.id_punto == obj.punto.id) {
m.setMap(null);
markersArray_PUNTOS.splice(i,1);
}
});
var latLngPUNTO = new google.maps.LatLng({lat: parseFloat(obj.punto.latitud), lng: parseFloat(obj.punto.longitud)});
if(obj.id_capa == 21){
icon = {
url: "./images/markers/icon_municipioGarveland.png"
}
marker = new MarkerWithLabel({
id: obj.punto.id,
position: latLngPUNTO,
icon: icon,
labelContent: obj.punto.nombre_es,
labelClass: "labels",
labelInBackground: false,
map: map
});
}else{
icon = {
url: './images/markers/icon_capa_marker_'+obj.id_capa+'.png',
scaledSize: new google.maps.Size(40, 40)
}
marker = new google.maps.Marker({
id: obj.punto.id,
position: latLngPUNTO,
icon: icon,
map: map
});
}
marker.metadata = {id_punto: obj.punto.id};
for(var i = 0; i < dataLayers.length; i++){
for(var j = 0; j < dataLayers[i].markerList.length; j++){
if(dataLayers[i].markerList[j].metadata.id_punto == obj.punto.id){
dataLayers[i].markerList.push(marker);
}
}
}
markersArray_PUNTOS.push(marker);
infoWindow.close();
infoWindow.setContent(createInfoMarkerCapa(obj.punto));
infoWindow.open(map, marker);
$("#btn_del_pt_"+obj.punto.id).on('click', function() {
$.confirm({
icon: 'fas fa-exclamation-triangle',
title: 'Confirmación',
content:'¿Está seguro de que desea borrar este punto?',
closeAnimation: 'top',
buttons: {
cancelar: function(cancelar){},
confirm: {
text: 'Borrar',
btnClass: 'btn-danger',
action: function(){
deletePt(obj.id_capa,obj.punto);
}
}
}
});
});
$("#comments-pt-"+obj.punto.id).on('click', function() {
openModalComments(obj.punto.id,2);
});
$("#ctr_p_"+obj.punto.id).on('click', function() {
$("#i_ctr_pt_id").val(obj.punto.id);
$("#i_ctr_tipo").val('2');
$("#modal_add_ctr").modal();
});
marker.addListener('click', function() {
if(infow_share){ infow_share.close();}
if( infoWindow ) { infoWindow.close(); }
marcador= this;
$.ajax({
url: './infoMarkerCapa?id='+this.id ,
type: 'GET',
contentType: 'application/json; charset=UTF-8',
success: function (respon) {
infoWindow.setContent(createInfoMarkerCapa(respon));
infoWindow.idRuta= null;
infoWindow.open(map,marcador);
$("#ctr_p_"+respon.id).click(function(){
$("#i_ctr_pt_id").val(respon.id);
$("#i_ctr_tipo").val('2');
$("#modal_add_ctr").modal();
});
$("#btn_del_pt_"+respon.id).click(function(){
$.confirm({
icon: 'fas fa-exclamation-triangle',
title: 'Confirmación',
content:'¿Está seguro de que desea borrar este punto?',
closeAnimation: 'top',
buttons: {
cancelar: function(cancelar){},
confirm: {
text: 'Borrar',
btnClass: 'btn-danger',
action: function(){
deletePt(obj.id_capa,obj.punto);
}
}
}
});
});
},
error: function (resp) {
alert('Ha ocurrido un error en el servidor al enviar la petición ajax');
}
});
});
}
function gestionPDRS() {
var self = this;
self.pdrs;
self.inicializar = function() {
self.pdrs = points
.map(function(location, i) {
var icon = {
url : callIconBase(location.tipo_idtipo),
scaledSize : new google.maps.Size(40, 40)
};
var marker = new google.maps.Marker({
position : new google.maps.LatLng(location.latitud,
location.longitud),
icon : icon,
opacity : location.visible = 1 ? 1 : 0.5
});
marker.metadata = {
id_pdr : location.id
};
if (!markersArray_PDR.includes(marker.metadata.id_pdr)) {
markersArray_PDR.push(marker);
}
marker
.addListener(
'click',
function() {
if (infow_share) {
infow_share.close();
}
if (infoWindow) {
infoWindow.close();
}
markerPDRActual = marker;
markerPDREDIT = marker;
map.setCenter(new google.maps.LatLng(
location.latitud,
location.longitud));
$.ajax({
url : './pdr?id='+ location.id,
type : 'GET',
contentType : 'application/json; charset=UTF-8',
success : function(pdr) {
infoWindow.setContent(createPopup(pdr));
infoWindow.idRuta = null;
infoWindow.open(map, marker);
$("#ctr_" + pdr.id).click(function() {
$(
"#i_ctr_pt_id")
.val(
pdr.id);
$(
"#i_ctr_tipo")
.val(
'1');
$(
"#modal_add_ctr")
.modal();
});
$("#comments-pdr-"+pdr.id).click(function(){
openModalComments(pdr.id,1);
});
},
error : function(resp) {
alert('Ha ocurrido un error en el servidor al enviar la petición ajax');
}
});
});
return marker;
});
}
}
function openModalEditPunto(id){
$.ajax({
url : './infoMarkerCapa?id=' + id,
type : 'GET',
contentType : 'application/json; charset=UTF-8',
success : function(p) {
PUNTOEDIT = p;
var descES = "";
var descPT = "";
if(p.descripcion_es != null && p.descripcion_pt != null){
descES = p.descripcion_es.replace(/
/g, "\n");
descPT = p.descripcion_pt.replace(/
/g, "\n");
}
$("#i_edit_pt_nombreES").val(p.nombre_es);
$("#i_edit_pt_nombrePT").val(p.nombre_pt);
$("#ta_edit_pt_descrES").val(descES);
$("#ta_edit_pt_descrPT").val(descPT);
$("#sel_edit_punto_layer").val(p.id_cap);
$(".i_hidden_lat_edit").val(p.latitud);
$(".i_hidden_long_edit").val(p.longitud);
if(p.direccion == null) {
consultarDireccionPuntoEdit($(".i_hidden_lat_edit").val(), $(".i_hidden_long_edit").val(), apiKeyGoogleMaps);
}else{
$(".i_edit_pt_addr").val(p.direccion);
}
$("#i_edit_pt_telef").val(p.telefono);
$("#i_edit_pt_url").val(p.url_link);
if(p.id_rut != null){
$("#radio_edit_punto_ruta").val("1");
$("#sel_edit_pt_ruta").val(p.id_rut);
}else{
$("#radio_edit_punto_ruta").val("0");
}
$("#modal-edit-punto").modal();
$(".edit_pt_more_photos").click(function(){
$("#modal_info_photosPunto").modal();
});
var latPointEdit = parseFloat(p.latitud);
var lngPointEdit = parseFloat(p.longitud);
mapeditpunto = new google.maps.Map(document
.getElementById('map-ubicar-editPunto'), {
center : {
lat : latPointEdit,
lng : lngPointEdit
},
zoom : 8,
disableDefaultUI : true
});
var markerterminal = new google.maps.Marker({
position : {
lat : latPointEdit,
lng : lngPointEdit
},
map : mapeditpunto
});
markerterminal.setMap(mapeditpunto);
marker = new google.maps.Marker({
draggable : true,
animation : google.maps.Animation.DROP,
});
mapeditpunto.addListener('click', function(e) {
if (markerterminal)
markerterminal.setMap(null);
marker.setPosition(e.latLng);
marker.setMap(mapeditpunto);
latActual = marker.position.lat();
lngActual = marker.position.lng();
$(".i_hidden_lat_edit").val(latActual);
$(".i_hidden_long_edit").val(lngActual);
consultarDireccion(latActual, lngActual,
apiKeyGoogleMaps, true);
});
marker.addListener('dragend', function() {
latActual = marker.position.lat();
lngActual = marker.position.lng();
$(".i_hidden_lat_edit").val(latActual);
$(".i_hidden_long_edit").val(lngActual);
consultarDireccion(latActual, lngActual,
apiKeyGoogleMaps, true);
});
},
error : function(resp) {
alert('Ha ocurrido un error en el servidor al enviar la petición ajax');
}
});
}
function openModalAddPunto() {
$("#modal-add-punto").modal();
initMapUbicarAdd('map-ubicar-addPunto');
}
function openModalAddPdr() {
$('#enchufes_select').multiSelect({
afterSelect : function(values) {
var val = parseInt(values[0]);
listArray.push(val);
},
afterDeselect: function(values){
var val = parseInt(values[0]);
for(var i = 0; i 0){
for (var i = 0; i <= filesInput; i++) {
formData.append('images',
$('#i_edit_imgs_punto')[0].files[i]);
}
}
formData.append('id',PUNTOEDIT.id);
formData.append('nombre_es', $("#i_edit_pt_nombreES").val());
formData.append('nombre_pt', $("#i_edit_pt_nombrePT").val());
formData.append('descripcion_es', $("#ta_edit_pt_descrES").val());
formData.append('descripcion_pt', $("#ta_edit_pt_descrPT").val());
formData.append('id_cap', $("#sel_edit_punto_layer").val());
formData.append('latitud', $(".i_hidden_lat_edit").val());
formData.append('longitud', $(".i_hidden_long_edit").val());
formData.append('direccion', $(".i_edit_pt_addr").val());
if($("#i_edit_pt_telef").val() != '')
formData.append('telefono', parseInt($("#i_edit_pt_telef").val()));
formData.append('url_link', $("#i_edit_pt_url").val());
if(document.getElementById("div_edit_pt_rutas") != null){
formData.append('id_rut', $("#sel_edit_pt_ruta").val());
}
$.ajax({
url : './edit-punto',
type : 'POST',
data : formData,
enctype : 'multipart/form-data',
processData : false,
contentType : false,
beforeSend: function(){
$(".loading").show();
},
success : function(response) {
var obj = $.parseJSON(response.data);
if (response.code == 0) {
$("#div_errors_edit_pt").addClass("d-none");
editPuntoMap(obj);
$(".loading").hide();
$("#modal-edit-punto").modal('hide');
showMsgPuntoCapa(2,response.message);
$("#form-edit-punto")[0].reset();
} else{
$("#errors_edit_pt").empty();
if(isIE){
$(".ie-m").css({marginBottom: "10%"});
}
$("#div_errors_edit_pt").removeClass("d-none");
$("#errors_edit_pt").append('- '+response.message+'
');
$(".loading").hide();
$('#modal-edit-punto').animate({ scrollTop: 0 }, 'slow');
}
},
error : function(response) {
$(".loading").hide();
console.log(response);
}
});
}
function sendDoEditPdr() {
$("#errorDoEditPdr").html("");
var error = false;
var v_data = {};
v_data.id = $("#inputEditId").val();
v_data.nombre = $("#inputEdit1").val();
v_data.tipo_idtipo = $("#inputEdit2").val();
v_data.energia_idenergia = $("#inputEdit3").val();
v_data.numero_enchufes = $("#inputEdit4").val();
v_data.enchufes = listEnchEdit;
v_data.direccion = $("#inputEdit5").val();
v_data.latitud = $("#i-hidd-pdr-edit-lat").val();
v_data.longitud = $("#i-hidd-pdr-edit-long").val();
v_data.precio_carga = $("#inputEdit8").val();
v_data.precio_estacionamiento = $("#inputEdit9").val();
v_data.funcionamiento = $("#inputEdit7").val();
v_data.web_link = $("#inputEdit10").val();
v_data.visible = $("#inputEdit13").val();
v_data.visible_text = $("#inputEdit14").val();
if (error) {
showErrorModal('Todos los campos deben estar completos',
'#errorDoEditPdr');
} else {
var msg;
$.ajax({
url : './editPdr',
type : 'POST',
data : JSON.stringify(v_data),
contentType : 'application/json; charset=UTF-8',
beforeSend: function(){
$(".loading").show();
},
success : function(response) {
msg = response.message;
if (response.code == 0) {
data = $.parseJSON(response.data);
$("#div_errors_edit_pdr").addClass("d-none");
var formData = new FormData();
var filesInput = $('#i_add_imgs_pdr_edit').get(0).files.length;
if(filesInput > 0){
for (var i = 0; i <= filesInput; i++) {
formData.append('images', $('#i_add_imgs_pdr_edit')[0].files[i]);
}
}
formData.append('id', data.id);
$.ajax({
url : './upload-img-pdr',
data : formData,
enctype : 'multipart/form-data',
processData : false,
contentType : false,
type : 'POST',
success : function(resp) {
if(resp.code == 0){
obj = $.parseJSON(resp.data);
editPdrMap(obj);
$("#modal-edit-pdr").modal('hide');
$(".loading").hide();
showMsgPdr(1,msg);
}
},
error : function(err) {
console.log(err);
}
});
} else{
$("#errors_edit_pdr").empty();
if(isIE){
$(".ie-m").css({marginBottom: "10%"});
}
$("#div_errors_edit_pdr").removeClass("d-none");
$("#errors_edit_pdr").append('- '+response.message+'
');
$(".loading").hide();
$('#modal-edit-pdr').animate({ scrollTop: 0 }, 'slow');
}
},
error : function(response) {
$(".loading").hide();
console.log(response);
}
});
}
}
function sendDoDeletePdr() {
$("#errorDoDeletePdr").html("");
var v_data = {};
v_data.id = idPdrDelete;
$.ajax({
url : './deletePdr',
type : 'POST',
data : JSON.stringify(v_data),
contentType : 'application/json; charset=UTF-8',
beforeSend: function(){
$(".loading").show();
},
success : function(response) {
if (response.code == 0) {
markersArray_PDR.forEach(function(m,i) {
if (m.metadata.id_pdr == response.data) {
m.setMap(null);
markersArray_PDR.splice(i,1);
}
});
puntos.forEach(function(m,i){
if (m.metadata.id_pdr == response.data) {
m.setMap(null);
puntos.splice(i,1);
}
});
$("#modal-delete-pdr").modal('hide');
$(".loading").hide();
showMsgPdr(3,response.message);
} else {
$(".loading").hide();
showErrorModal(response.message, '#errorDoDeletePdr');
}
},
error : function(response) {
$(".loading").hide();
showErrorModal(response.message, '#errorDoDeletePdr');
}
});
}
function json2array(json) {
var result = [];
var keys = Object.keys(json);
keys.forEach(function(key) {
result.push(json[key]);
});
return result;
}
function sendDoAddPunto(){
var formData = new FormData();
var filesInput = $('#i_add_imgs_punto').get(0).files.length;
if(filesInput > 0){
for (var i = 0; i <= filesInput; i++) {
formData.append('images',
$('#i_add_imgs_punto')[0].files[i]);
}
}
formData.append('nombre_es', $("#i_add_pt_nombreES").val());
formData.append('nombre_pt', $("#i_add_pt_nombrePT").val());
formData.append('descripcion_es', $("#ta_add_pt_descrES").val());
formData.append('descripcion_pt', $("#ta_add_pt_descrPT").val());
formData.append('id_cap', $("#sel_add_punto_layer").val());
formData.append('latitud', $(".i_hidden_lat").val());
formData.append('longitud', $(".i_hidden_long").val());
formData.append('direccion', $(".i_add_pt_addr").val());
if($("#i_add_pt_telef").val() != '')
formData.append('telefono', parseInt($("#i_add_pt_telef").val()));
formData.append('url_link', $("#i_add_pt_url").val());
if(document.getElementById("div_add_pt_rutas") != null){
formData.append('id_rut', $("#sel_add_pt_ruta").val());
}
$.ajax({
url : './add-punto',
type : 'POST',
data : formData,
enctype : 'multipart/form-data',
processData : false,
contentType : false,
beforeSend: function() {
$(".loading").show();
},
success : function(response) {
var obj = $.parseJSON(response.data);
if(response.code == 0){
$("#div_errors_add_pt").addClass("d-none");
$(".loading").hide();
$("#modal-add-punto").modal('hide');
showMsgPuntoCapa(1,response.message);
setTimeout(function(){
window.location.href = './visor';
}, 2500);
}else {
$("#errors_add_pt").empty();
if(isIE){
$(".ie-m").css({marginBottom: "10%"});
}
$("#div_errors_add_pt").removeClass("d-none");
$("#errors_add_pt").append('- '+response.message+'
');
$(".loading").hide();
$('#modal-add-punto').animate({ scrollTop: 0 }, 'slow');
}
},
error : function(response) {
$(".loading").hide();
console.log(response);
}
});
}
function sendDoAddPdr() {
$("#errorDoAddPdr").html("");
var error = false;
var v_data = {};
v_data.nombre = $("#input1").val();
v_data.tipo_idtipo = $("#input2").val();
v_data.energia_idenergia = $("#input3").val();
v_data.numero_enchufes = $("#input4").val();
v_data.enchufes = listArray;
v_data.direccion = $("#input5").val();
v_data.latitud = latActual;
v_data.longitud = lngActual;
v_data.precio_carga = $("#input8").val();
v_data.precio_estacionamiento = $("#input9").val();
v_data.funcionamiento = $("#input7_text").val();
v_data.web_link = $("#input10").val();
if (error) {
showErrorModal('Todos los campos deben estar completos',
'#errorDoAddPdr');
} else {
$.ajax({
url : './addPdr',
type : 'POST',
data : JSON.stringify(v_data),
contentType : 'application/json; charset=UTF-8',
beforeSend: function() {
$(".loading").show();
},
success : function(response) {
if (response.code == 0) {
data = $.parseJSON(response.data);
$("#div_errors_add_pdr").addClass("d-none");
var formData = new FormData();
var filesInput = $('#i_add_imgs_pdr').get(0).files.length;
if(filesInput > 0){
for (var i = 0; i <= filesInput; i++) {
formData.append('images',
$('#i_add_imgs_pdr')[0].files[i]);
}
}
formData.append('id', data.id);
$.ajax({
url : './upload-img-pdr',
data : formData,
enctype : 'multipart/form-data',
processData : false,
contentType : false,
type : 'POST',
success : function(resp) {
if(resp.code == 0){
obj = $.parseJSON(resp.data);
$(".loading").hide();
$("#modal-add-pdr").modal('hide');
$("#form_pdr_add1")[0].reset();
$("#form_pdr_add2")[0].reset();
$("#conncetions_fields").empty();
showMsgPdr(1,resp.message);
setTimeout(function(){
window.location.href = './visor';
}, 2500);
}
},
error : function(err) {
$(".loading").hide();
console.log(err);
}
});
} else{
$("#errors_add_pdr").empty();
if(isIE){
$(".ie-m").css({marginBottom:'10%'});
}
$("#div_errors_add_pdr").removeClass("d-none");
$("#errors_add_pdr").append('- '+response.message+'
');
$(".loading").hide();
$('#modal-add-pdr').animate({ scrollTop: 0 }, 'slow');
}
},
error : function(response) {
$(".loading").hide();
console.log(response);
}
});
}
}
function initMapUbicarAdd(idElement) {
mapAddPdr = new google.maps.Map(document.getElementById(idElement), {
center : {
lat : 37.1847263,
lng : -6.9862084
},
zoom : 8,
disableDefaultUI : true
});
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat : position.coords.latitude,
lng : position.coords.longitude
};
mapAddPdr.setCenter(pos);
}, function() {
handleLocationError(true, infoWindow, mapAddPdr.getCenter());
});
} else {
handleLocationError(false, infoWindow, mapAddPdr.getCenter());
}
var markerterminal = new google.maps.Marker({
position : {
lat : 37.1847263,
lng : -6.9862084
},
map : mapAddPdr
});
markerterminal.setMap(mapAddPdr);
marker = new google.maps.Marker({
draggable : true,
animation : google.maps.Animation.DROP,
});
mapAddPdr.addListener('click', function(e) {
if (markerterminal)
markerterminal.setMap(null);
marker.setPosition(e.latLng);
marker.setMap(mapAddPdr);
latActual = marker.position.lat();
lngActual = marker.position.lng();
consultarDireccion(latActual, lngActual, apiKeyGoogleMaps, false);
$(".i_hidden_lat").val(latActual);
$(".i_hidden_long").val(lngActual);
});
marker.addListener('dragend', function() {
latActual = marker.position.lat();
lngActual = marker.position.lng();
consultarDireccion(latActual, lngActual, apiKeyGoogleMaps, false);
});
}
function toggleBounce() {
if (marker.getAnimation() !== null) {
marker.setAnimation(null);
} else {
marker.setAnimation(google.maps.Animation.BOUNCE);
}
}
function buscarUbicacion() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat : position.coords.latitude,
lng : position.coords.longitude
};
latActual = position.coords.latitude;
lngActual = position.coords.longitude;
map.setCenter(pos);
}, function() {
handleLocationError(true, infoWindow, map.getCenter());
});
} else {
handleLocationError(false, infoWindow, map.getCenter());
}
}
function consultarDireccion(lat, lng, apiKeyGoogleMaps, edit) {
$.getJSON("https://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat
+ "," + lng + "&key=" + apiKeyGoogleMaps, function(val) {
if (val.results.length) {
var address = val.results[0].formatted_address;
latUbicar = val.results[0].geometry.location.lat;
lngUbicar = val.results[0].geometry.location.lng;
$(".i_add_pt_addr").val(address.toString());
$(".i_edit_pt_addr").val(address.toString());
if (edit) {
$("#inputEdit5").val(address.toString());
$("#inputEdit5-div").addClass("focused");
} else {
$("#input5").val(address.toString());
$("#input5-div").addClass("focused");
}
}
});
}
function consultarDireccionPuntoEdit(lat, lng, apiKeyGoogleMaps) {
$.getJSON("https://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat
+ "," + lng + "&key=" + apiKeyGoogleMaps, function(val) {
if (val.results.length) {
var address = val.results[0].formatted_address;
$(".i_edit_pt_addr").val(address.toString());
}
});
}