/**
  * 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;
 }