/** * Retorna datos de ubicacion de la alarma * @throws Exception */ public function ajax_posicion_lugar_emergencia() { header('Content-type: application/json'); $data = array("correcto" => false); $params = $this->input->post(null, true); $emergencia = $this->_emergencia_model->getById($params["id"]); if (!is_null($emergencia)) { $configuracion = $this->_emergencia_mapa_configuracion_model->getByEmergencia($emergencia->eme_ia_id); if (!is_null($configuracion) && ($configuracion->latitud != "" && $configuracion->longitud != "")) { $latitud = $configuracion->latitud; $longitud = $configuracion->longitud; $zoom = $configuracion->zoom; } else { $lugar_emergencia = $this->_emergencia_elementos_model->getPrimerLugarEmergencia($emergencia->eme_ia_id); if (!is_null($lugar_emergencia)) { $coordenadas = Zend_Json::decode($lugar_emergencia->coordenadas); $latitud = $coordenadas["center"]["lat"]; $longitud = $coordenadas["center"]["lng"]; } else { $latitud = $emergencia->eme_c_utm_lat; $longitud = $emergencia->eme_c_utm_lng; } $zoom = 17; } $data = array("correcto" => true, "resultado" => array("lat" => $latitud, "lon" => $longitud, "nombre" => $emergencia->eme_c_nombre_emergencia, "zoom" => $zoom)); } else { $data["error"] = "La emergencia no existe"; } echo json_encode($data); }
/** * * @param array $lista_elementos */ public function guardar($lista_elementos) { $guardados = array(); if (count($lista_elementos) > 0) { foreach ($lista_elementos as $elemento_json) { $elemento = json_decode($elemento_json); if (is_object($elemento)) { $emergencia_elemento = $this->_emergencia_elemento_model->getById($elemento->id); $icono = ""; $color = ""; if (isset($elemento->icono)) { if (isset($elemento->hash)) { $this->_ci->archivo_save->saveFromCache($elemento->hash, array("emergencia", $this->_id_emergencia, "mapa")); $icono = $this->_ci->archivo_save->getPath(); if (!is_null($emergencia_elemento)) { $existe = strpos($emergencia_elemento->icono, "spotlight-poi-black.png"); if ($existe === false) { @unlink(FCPATH . $emergencia_elemento->icono); } } } else { $icono = $elemento->icono; } } if (isset($elemento->color)) { $color = $elemento->color; } $data = array("id_emergencia" => $this->_id_emergencia, "tipo" => $elemento->tipo, "color" => $color, "icono" => $icono, "propiedades" => json_encode($elemento->propiedades), "coordenadas" => json_encode($elemento->coordenadas)); if (!is_null($emergencia_elemento)) { $this->_emergencia_elemento_model->update($data, $emergencia_elemento->id); $id = $emergencia_elemento->id; $guardados[$elemento->clave] = $id; } else { $id = $this->_emergencia_elemento_model->insert($data); $guardados[$elemento->clave] = $id; } } } } $this->_emergencia_elemento_model->deleteNotIn($this->_id_emergencia, $guardados); return $guardados; }