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()); } }); }