/**
  * Guarda un elemento de una capa
  */
 public function guardarItemSubcapa()
 {
     $item = $this->uri->uri_to_assoc();
     $id_item = $item['item'];
     $params = $this->input->post();
     $id_subcapa = $params['id_subcapa'];
     $data = array();
     foreach ($params["propiedad_nombre"] as $key => $nombre) {
         $propiedades[$nombre] = $params["propiedad_valor"][$key];
     }
     $this->load->library("capa/elemento/capa_elemento_locacion", $propiedades);
     $this->capa_elemento_locacion->process();
     $data["poligono_comuna"] = $this->capa_elemento_locacion->getComuna();
     $data["poligono_provincia"] = $this->capa_elemento_locacion->getProvincia();
     $data["poligono_region"] = $this->capa_elemento_locacion->getRegion();
     $data["poligono_capitem"] = $params["id_subcapa"];
     /* verificar valores de region y comuna */
     if (isset($propiedades['REGION']) and is_numeric($propiedades['REGION'])) {
         $this->load->model('region_model', 'RegionModel');
         $region = $this->RegionModel->getById($propiedades['REGION']);
         $propiedades['REGION'] = $region->reg_c_nombre;
     }
     if (isset($propiedades['COMUNA']) and is_numeric($propiedades['COMUNA'])) {
         $this->load->model('comuna_model', 'ComunaModel');
         $comuna = $this->ComunaModel->getById($propiedades['COMUNA']);
         $propiedades['COMUNA'] = $comuna->com_c_nombre;
     }
     $data["poligono_propiedades"] = serialize($propiedades);
     switch ($params["tipo_elemento"]) {
         case "Point":
             $geometria = array("type" => "Point", "coordinates" => array(0 => $params["form_coordenadas_longitud"], 1 => $params["form_coordenadas_latitud"]));
             $data["poligono_geometria"] = serialize($geometria);
             break;
         case "Polygon":
             $coordenadas = Zend_Json::decode($params["coordenadas"]);
             $geo = array("type" => "Polygon", "coordinates" => array());
             foreach ($coordenadas as $latLng) {
                 $geo["coordinates"][0][] = array($latLng["lng"], $latLng["lat"]);
             }
             $data["poligono_geometria"] = serialize($geo);
             break;
         case "MultiPolygon":
             $coordenadas = Zend_Json::decode($params["coordenadas"]);
             $geo = array("type" => "MultiPolygon", "coordinates" => array());
             foreach ($coordenadas as $key => $punto) {
                 foreach ($punto as $latLng) {
                     $geo["coordinates"][0][$key][] = array($latLng["lng"], $latLng["lat"]);
                 }
             }
             $data["poligono_geometria"] = serialize($geo);
             break;
         default:
             break;
     }
     $json = array();
     if ($id_item > 0) {
         $guardar = $this->capa_detalle_elemento_model->update($data, $id_item);
     } else {
         $guardar = $this->capa_detalle_elemento_model->insert($data);
     }
     if ($guardar) {
         $json['estado'] = true;
         $json['mensaje'] = "Datos guardados correctamente";
     } else {
         $json['estado'] = false;
         $json['mensaje'] = "Hubo un problema al guardar los datos. Intente nuevamente";
     }
     echo json_encode($json);
 }