Más

¿Creando geometría a partir de lat / lon en la tabla usando PostGIS?

¿Creando geometría a partir de lat / lon en la tabla usando PostGIS?


Tengo una tabla con más de 800.000 registros, incluida una columna de latitud y una longitud. La fuente de datos no creaba geometrías, así que estaba buscando cómo hacer esto. Sé que hay ST_MakePoint (x, y, SRID) pero toda la documentación y otros hilos muestran cómo crear puntos únicos. ¿Cómo creo el tipo de geometría usando estas columnas?


Las versiones más recientes de PostGIS permiten la siguiente sintaxis, un poco más común:

ALTER TABLE your_table AÑADIR COLUMNA geometría geom (Point, 4326);

Luego use ST_SetSrid y ST_MakePoint para completar la columna:

ACTUALIZAR your_table SET geom = ST_SetSRID (ST_MakePoint (longitud, latitud), 4326);

Ver documentación aquí:


Si aún no ha agregado una columna de geometría (asumiendo EPSG: 4326 aquí):

SELECCIONE AddGeometryColumn ('su_tabla', 'geom', 4326, 'PUNTO', 2);

LuegoACTUALIZAR, pasando los nombres de sus campos xey:

ACTUALIZAR su tabla SET geom = ST_SetSRID (ST_MakePoint (longitud, latitud), 4326);

Esto actualizará toda la tabla, a menos que incluya unDONDEcláusula

Referencia a ST_SetSrid: https://postgis.net/docs/ST_SetSRID.html


Uso de PostGIS & quotcontains (geom1, geom2) & quot dentro de Vistas

He estado trabajando en la integración de Views y PostGIS, específicamente las áreas de contención espacial y agregados espaciales.

Recientemente, he logrado grandes avances en la comprensión de cómo podría funcionar esto en Views, y pensé en compartir mis hallazgos aquí. Si la contención ha entrado recientemente en el núcleo y ya no requiere codificación, perdóneme. De lo contrario, creo que esta investigación puede sentar las bases para hacer que la contención espacial (y luego los agregados espaciales) se creen automágicamente dentro de la interfaz de usuario de Vistas. Por el momento, esto está codificado para agregar la cláusula WHERE de contención y las adiciones ON, pero el camino ahora me parece bastante sencillo. Este enfoque se desarrolló con la ayuda de algunas personas en los foros (https://drupal.org/node/2154761).

Objetivo: Estoy haciendo una "unión espacial" usando dos columnas de geometría (un punto y un polígono) para determinar si dos nodos separados se cruzan en el mismo espacio. Tengo las geometrías almacenadas en tablas separadas.

Método: He creado un módulo personalizado para insertar las condiciones espaciales deseadas en las consultas construidas en una Vista específica. El nombre de mi módulo es "wsp_devel", aunque esto es irrelevante.

Lectura de antecedentes: Este enfoque se basó en gran medida en el módulo personalizado "Ejemplo de nodo" definido aquí: http://views-help.doc.logrus.com/help/views/api-example: la información de ese tutorial se puede usar para decirle a Views cómo para unir automáticamente tablas con columnas de geometría utilizando las condiciones espaciales que se muestran a continuación.

  • 'nodo' - Mi tabla base
  • 'data_node_point': una tabla con un NID que hace referencia y tiene una geometría de puntos (básicamente una latitud y una longitud)
  • 'data_node_coverage': una tabla con un entity_id (también una referencia nid) y una geometría de varios polígonos (un área espacial bidimensional)
  • 'wsp_sysloc_cache' -

esta es otra tabla que tiene información que está unida en vistas pero no se usa en la parte espacial de la consulta (pero aparece en el extracto de SQL a continuación)

  1. Me uno a la tabla de puntos 'data_node_point' a 'node' a través de las columnas 'nid' coincidentes; uso la función "$ query- & gtaddRelationship" para permitirme unirme a la tabla 'data_node_point' más tarde.
  2. Agrego columnas de 'data_node_point' - 'nid' y 'the_geom'
  3. Me uno a la tabla 'data_node_coverage' a 'data_node_point' a través de un operador de contención espacial: si el lat / lon en 'data_node_point' se encuentra dentro de los límites de 'data_node_coverage', entonces lo incluyo.
  4. Busco geometrías nulas, lo que indicaría que el nodo original no tiene ninguna entrada en la tabla de puntos o no tiene cobertura superpuesta.

Código de módulo personalizado views_query_alter

La consulta que resulta (al pasar un nid para un solo nodo de cobertura):


GeoManager ¶

Para realizar consultas geográficas, cada modelo geográfico requiere un GeoManager gerente de modelos. Este administrador permite la construcción adecuada de SQL para consultas geográficas, por lo tanto, sin él, todos los filtros geográficos fallarán. También debe tenerse en cuenta que GeoManager es necesario incluso si el modelo no tiene un campo geográfico en sí, por ejemplo, en el caso de un Clave externa relación a un modelo con un campo geográfico. Por ejemplo, si tuviéramos un Dirección modelo con un Clave externa para nuestro Código postal modelo:

El administrador geográfico es necesario para realizar consultas espaciales sobre Código postal objetos, por ejemplo:


Incluye una amplia gama de componentes:

Componentes para cálculos espaciales:

calculadora de dArea Este componente toma como entrada una geometría poligonal y calcula su área.
dCoordinateFetcher Este componente recupera las coordenadas de un punto bidimensional o tridimensional. En el caso de un sistema de coordenadas geográficas, recupera la longitud y la latitud. De lo contrario, recupera los valores este y norte.
dLengthCalculator Este componente calcula la longitud de una línea o la longitud total del contorno de un polígono.

Componentes desarrollados para la optimización de la calidad de los datos:

dGeometryValidator Este componente toma una geometría de entrada y la valida. Devuelve un valor booleano, verdadero si la geometría es válida; de lo contrario, devuelve falso.

Componentes desarrollados para el uso de bases de datos Oracle y conversión de datos más rápida:


Utilice los datos de mapas en vivo de HERE HD para verificar las configuraciones de los carriles

Este ejemplo muestra cómo leer y visualizar configuraciones de carril para una ruta de conducción grabada desde el servicio HERE HD Live Map (HERE HDLM). Esta visualización se puede utilizar para verificar las configuraciones de carril detectadas por el sistema de percepción de un sensor integrado, como una cámara monocular.

En este ejemplo, aprenderá a acceder a las capas en mosaico del servicio HDLM e identificar la topología, la geometría y los atributos relevantes a nivel de carretera y de carril.

Para leer los datos, usa un objeto hereHDLMReader. El uso del servicio HERE HD Live Map requiere credenciales HERE HDLM válidas. Debe firmar un acuerdo por separado con HERE para obtener acceso a los servicios HDLM y obtener las credenciales requeridas (access_key_id y access_key_secret) para usar el Servicio HERE.

Visión general

Los mapas de alta definición (HD) se refieren a servicios de mapas desarrollados específicamente para aplicaciones de conducción automatizada. La geometría precisa de estos mapas (con una resolución de hasta 1 cm cerca del ecuador) los hace adecuados para flujos de trabajo de conducción automatizada más allá de las aplicaciones de planificación de rutas de los mapas de carreteras tradicionales. Dichos flujos de trabajo incluyen verificación, localización y planificación de rutas a nivel de carril. Este ejemplo le muestra cómo verificar el rendimiento de un sistema de detección de carriles utilizando información a nivel de carril de datos cartográficos HD.

La precisión de los datos cartográficos HD permite su uso como fuente de datos reales para la verificación de los sistemas de percepción de sensores a bordo. Esta alta precisión permite una verificación más rápida y precisa de los algoritmos implementados existentes.

HERE HD Live Map (HERE HDLM) es un servicio de mapas HD basado en la nube desarrollado por HERE Technologies para respaldar la conducción altamente automatizada. Los datos se componen de capas de mapeo en mosaico que brindan acceso a geometría precisa y atributos sólidos de una red de carreteras. Las capas se agrupan en los siguientes modelos:

Modelo de línea central de carretera: Proporciona la topología de la carretera (especificada como nodos y vínculos en un gráfico), geometría de forma y otros atributos a nivel de la carretera.

Modelo de carril HD: Proporciona topología de carril (como grupos de carril y conectores de grupo de carril), geometría de alta precisión y atributos de nivel de carril.

Modelo de localización HD: Proporciona funciones para respaldar las estrategias de localización de vehículos.

Para obtener una descripción general de las capas HERE HDLM, consulte HERE HD Live Map Layers.

Las cámaras se utilizan en la conducción automatizada para recopilar información semántica sobre la topología de la carretera alrededor del vehículo. Los algoritmos de detección de límites de carril, clasificación de tipo de carril y detección de señales de tráfico forman el núcleo de tal canal de procesamiento de cámaras. Puede utilizar el servicio HERE HDLM, junto con un GPS de alta precisión montado en el vehículo, para evaluar la precisión de dichos algoritmos y verificar su rendimiento.

En este ejemplo, aprenderá a:

Lea la información de carreteras y carriles del servicio HERE HDLM para obtener una secuencia de GPS grabada.

Aplicar un enfoque de coincidencia de ruta heurística a los datos GPS registrados. Debido a que los datos de GPS a menudo son imprecisos, es necesario resolver el problema de hacer coincidir las coordenadas geográficas registradas con una representación de la red de carreteras.

Identificar los atributos ambientales relevantes para el vehículo. Una vez que un vehículo se encuentra correctamente ubicado dentro del contexto del mapa, puede usar los atributos de la carretera y el carril relevantes para el vehículo para verificar los datos registrados por el sensor de la cámara a bordo del vehículo.

Cargar y mostrar datos de la cámara y del GPS

Comience cargando datos desde la unidad grabada. Los datos registrados en este ejemplo provienen de un conjunto de datos de conducción recopilados por el equipo de vehículos autónomos Udacity & # 174. Estos datos incluyen un video capturado por una cámara monocular frontal y posiciones y velocidades del vehículo registradas por un GPS.


Tareas de complementos

Las siguientes tareas están incluidas en complementos.

Se pueden agregar a la ósmosis instalando el complemento especificado en uno de los parches siguientes o agregándolo a la línea de comandos a través de la opción "-P".

Para instalar estas tareas, copie el archivo zip especificado en

Para escribir sus propios complementos, consulte Osmosis / WritingPlugins.

--escribir-osmbin-0.6

  • complemento-zip: libosm_osmosis_plugins.zip (Parte de vendedor ambulante)
  • descargar: Vendedor ambulante en Sourceforge (pronto)
  • documentación: Vendedor ambulante - Wiki

Tubo Descripción
inPipe.0 Consume un flujo de entidad.

Opción Descripción Valores válidos Valor por defecto
dir El nombre del directorio en el que se va a escribir. Se creará si es necesario. Se agregará / actualizará si existe osmbin-data. Cualquier nombre de directorio válido. ninguno

  • java -classpath lib / jpf.jar: lib / commons-logging-1.0.4.jar: lib / osmosis.jar org.openstreetmap.osmosis.core.Osmosis --read-xml file = "../ Desktop / hamburg. osm.bz2 "--write-osmbin-0.6 dir =" ../ osmbin-map "

--dataset-osmbin-0.6

Leer y escribir desde / hacia un directorio en Osmbin versión 1.0 y proporcionar acceso aleatorio a él para otras tareas.

esta tarea aún no ha terminado. Proporciona acceso aleatorio, pero los métodos bulk iterate () e iterateBoundingBox () aún no están implementados.

Tubo Descripción
inPipe.0 Consume un flujo de entidad.

Opción Descripción Valores válidos Valor por defecto
dir El nombre del directorio en el que se va a escribir. Se creará si es necesario. Se agregará / actualizará si existe osmbin-data. Cualquier nombre de directorio válido. ninguno

  • java -classpath lib / jpf.jar: lib / commons-logging-1.0.4.jar: lib / osmosis.jar org.openstreetmap.osmosis.core.Osmosis --read-xml file = "../ Desktop / hamburg. osm.bz2 "--dataset-osmbin-0.6 dir =" ../ osmbin-map "

--reíndice-osmbin-0.6

Vuelva a crear el archivo .idx para un directorio en Osmbin versión 1.0

  • complemento-zip: libosm_osmosis_plugins.zip (Parte de vendedor ambulante)
  • descargar: Vendedor ambulante en Sourceforge
  • documentación: Vendedor ambulante - Wiki
  • esta tarea también se puede ejecutar de forma independiente. como java -jar libosm.jar org.openstreetmap.osm.data.osmbin.v1_0.OsmBinV10Reindexer (nombre-directorio)

Opción Descripción Valores válidos Valor por defecto
dir El nombre del directorio que se volverá a indexar. Cualquier nombre de directorio válido. ninguno

--read-osmbin-0.6

Leer de un directorio en formato Osmbin versión 1.0.

complemento-zip: TravellingSalesman_OsmosisPlugins.zip

Tubo Descripción
outPipe.0 Crea una secuencia de entidades.

Opción Descripción Valores válidos Valor por defecto
dir El nombre del directorio desde el que se leerá. Cualquier nombre de directorio válido. ninguno

--inducir-vías-por-turno-restricciones (-iwtt)

Convierta todas las intersecciones con restricciones de giro desde un nodo en un número equivalente de calles de un solo sentido que solo se pueden recorrer según lo permitido por la restricción de giro. Esto está destinado a ser un paso previo al procesamiento para los enrutadores que no pueden lidiar con las restricciones / costos en los nodos de gráficos.

complemento-zip: TravellingSalesman_OsmosisPlugins.zip

--simplificar

Los filtros de complemento simplifican para eliminar algunos elementos con el fin de simplificar los datos. Actualmente hace una forma de simplificación extremadamente cruda. Elimina todos los nodos, aparte de los nodos inicial y final de todos los sentidos.

La tarea de simplificación actual no tiene opciones.


Incorporación de características de SQL Server Spatial

AutoCAD Map 3D es compatible con SQL Server y SQL Server Spatial.

Para SQL Server Spatial, AutoCAD Map 3D admite datos nativos de SQL Server Spatial con SQL Server 2008 R2. Si utiliza SQL Server 2008, le recomendamos que utilice el proveedor espacial de SQL Server. Si bien el proveedor espacial de SQL Server no lee los almacenes de datos creados por el proveedor anterior de SQL Server, puede usar la copia masiva para mover los datos a ese formato.

Cuando ve y edita características de una fuente de datos espaciales de SQL Server, puede hacer lo siguiente:

  • Utilice la autenticación de Windows o SQL Server.
  • Seleccione las clases de entidad para incluir en su mapa. Para entidades con múltiples propiedades de geometría, especifique qué geometrías incluir.
  • Establezca condiciones para limitar las características en su mapa.
  • Aplicar estilo, tema y editar las funciones.
  • Actualice automáticamente la fuente de datos con las modificaciones que realice.

Sus ediciones son inmediatamente visibles para cualquier otra persona que utilice la fuente de datos.

Se crea una columna de tipo geográfico para el sistema de coordenadas geodésicas. Para otros sistemas, se crea una columna de tipo geométrico. Los índices espaciales se crean automáticamente para estas propiedades de geometría utilizando parámetros de índice espacial predeterminados. Puede anular los valores predeterminados mediante la API.

Puede incluir metadatos FDO al crear un almacén de datos de SQL Server.

Si cierra un dibujo que usa una conexión SQLServerSpatial y luego vuelve a abrir ese dibujo, primero deberá volver a conectarse a la conexión SQLServerSpatial y proporcionar su nombre de usuario y contraseña. Esta información no se recuerda una vez que se cierra el dibujo.

Tratar con geometría no válida

SQL Server Spatial valida los objetos de geometría que se agregan a la base de datos. Valida los valores de las columnas de geometría después de que se agregan. Como resultado, algunas geometrías se marcan como no válidas, aunque se guarden. Esto generalmente afecta a los polígonos (por ejemplo, polígonos que no están cerrados) y picos en la geometría. La validación se basa en las reglas de OGC.

La consulta de geometrías no válidas mediante un filtro espacial (por ejemplo, mediante una expresión) genera un error y la consulta falla. Esto afecta a SQL Server geometría (pero no SQL Server geografía).

El proveedor FDO para SQL Server Spatial usa el geografía tipo de datos para sistemas de coordenadas de latitud / longitud y el geometría tipo de datos para todos los demás. El tipo de datos geográficos no retiene valores de geometría no válidos y los rechaza de inmediato. No admite las funciones STIsValid () o IsValid (geometría) que se describen a continuación.

Cómo se maneja la geometría no válida

El proveedor FDO para SQL Server Spatial reconoce que pueden existir geometrías no válidas en una tabla que se está procesando. El proveedor incluye código para evitar que las consultas fallen, utilizando las siguientes estrategias:

  • Una consulta sin filtro espacial devuelve todos los datos.
  • Una consulta con un filtro espacial omite geometrías no válidas para que la consulta no falle por completo. Se devuelven geometrías válidas que coinciden con el filtro espacial.
  • Una consulta que utiliza el filtro FDO EnvelopeIntersects no omite geometrías no válidas si se incluye un índice espacial en la columna de geometría. En esta combinación de casos especiales, SQL Server Spatial no falla en la consulta porque no procesa los detalles de la geometría. Infrastructure Map Server utiliza este tipo de filtro como filtro de selección predeterminado.

AutoCAD Map 3D e Infrastructure Map Server pueden dibujar estas geometrías no válidas sin problemas.

Usar expresiones para encontrar geometría no válida

SQL Server proporciona una función llamada STIsValid () que devuelve 1 para geometrías válidas y 0 para geometrías no válidas. FDO expone el acceso a esa función mediante una función llamada IsValid (geometría) en el nivel FDO. Puede utilizar esta función en AutoCAD Map 3D e Infrastructure Map Server cuando crea una expresión para filtrar o seleccionar datos. Si selecciona datos sin filtro o usando solo el filtro EnvelopeIntersects, puede crear una propiedad calculada en la Tabla de datos usando la función IsValid para ver qué geometrías son válidas o inválidas.

Corrección de geometría no válida

SQL Server Spatial también proporciona una función que puede utilizar para corregir geometrías no válidas en el servidor. No puede utilizar esta función desde AutoCAD Map 3D e Infrastructure Map Server, pero puede utilizarla directamente contra SQL Server, por ejemplo, mediante Management Studio. A continuación, se muestra un ejemplo de este método:

actualizar dbo.road set geom = geom.MakeValid () donde geom.STIsValid () = 0

Esta operación hace que la geometría sea válida modificando sus partes no válidas. Es posible que prefiera editar la geometría usted mismo, en lugar de utilizar una corrección predeterminada con resultados inciertos.

Para obtener más información sobre las funciones STIsValid () y MakeValid (), así como otros aspectos de SQL Server Spatial, consulte la documentación en línea de SQL Server Spatial.

Para incorporar características de SQL Server Spatial

  1. En el Administrador de visualización, haga clic en Datos Conectar a datos.
  2. En la ventana Conexión de datos, seleccione Agregar conexión espacial de SQL Server en la lista Conexiones de datos por proveedor.
  3. En Nombre de la conexión, escriba un nombre para esta conexión.

Puede darle a la conexión el nombre que desee. Este nombre aparece en Map Explorer como el nombre de la fuente de la característica.

El nombre del servicio se establece cuando instala SQL Server Spatial.

  • Para usar sus credenciales de autenticación de Windows, seleccione Autenticación de Windows y haga clic en Iniciar sesión.
  • Para usar sus credenciales de inicio de sesión de SQL Server, ingrese su nombre de usuario y contraseña y haga clic en Iniciar sesión.

Para seleccionar de una lista de almacenes de datos, haga clic en la flecha hacia abajo. AutoCAD Map 3D se conecta al servidor y la instancia especificados y enumera los almacenes de datos disponibles.

Si esta fuente de entidad contiene solo una única clase de entidad, esa clase de entidad se selecciona automáticamente. Si contiene varias clases de entidad, puede realizar una de las siguientes acciones:

  • Haga clic con el botón derecho en la entrada del esquema y seleccione Seleccionar todo o No seleccionar ninguno.
  • Expanda la entrada del esquema y seleccione las clases de entidad para agregar.

Si una clase de entidad contiene varios tipos de geometría y selecciona la clase de entidad en sí, se agregan todas las geometrías. Para agregar un subconjunto de geometrías, mantenga el cursor sobre el nombre de la clase de entidad para ver el botón Mostrar geometría. Haga clic en Mostrar geometría para ver cada geometría como una opción independiente. Seleccione los que desee. Cada geometría seleccionada se agrega al mapa como una capa independiente del Administrador de visualización.

Para traer un subconjunto de los datos, haga clic en la flecha hacia abajo y seleccione Agregar al mapa con consulta. Para filtrar datos después de haberlos agregado a su mapa, consulte Filtrar una capa de entidades.


Ver el vídeo: Μέτρηση και κατασκευή γωνίας