2 votos

Cómo usar GDAL para importar puntos de latitud / longitud desde ESRI File Geodatabase a MySQL

Tengo un archivo geodatabase desde aquí: ftp://ftp.csc.noaa.gov/temp/MarineCadastre/AIS.SampleData.zip

Usando ogrinfo, puedo ver que contiene una capa llamada "Broadcast_" que tiene puntos lat/lon:

C:\Users\Dirk Beer\Desktop\AIS.SampleData>ogrinfo Miami.gdb Broadcast_
INFO: Open of 'Miami.gdb'
      using driver 'FileGDB' successful.

Layer name: Broadcast_
Geometry: Point
Feature Count: 1365578
Extent: (-80.282093, 25.591130) - (-79.751260, 25.950708)
Layer SRS WKT:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0,
        AUTHORITY["EPSG","8901"]],
    UNIT["degree",0.0174532925199433,
        AUTHORITY["EPSG","9122"]],
    AUTHORITY["EPSG","4326"]]
FID Column = OBJECTID
Geometry Column = Shape
SOG: Integer (0.0)
COG: Integer (0.0)
Heading: Integer (0.0)
ROT: Integer (0.0)
BaseDateTime: DateTime (0.0)
Status: Integer (0.0)
VoyageID: Integer (0.0)
MMSI: Integer (0.0)
ReceiverType: String (0.0)
ReceiverID: String (0.0)
OGRFeature(Broadcast_):1
  SOG (Integer) = 0
  COG (Integer) = 77
  Heading (Integer) = 511
  ROT (Integer) = 128
  BaseDateTime (DateTime) = 2008/12/31 23:59:00
  Status (Integer) = 0
  VoyageID (Integer) = 11
  MMSI (Integer) = 366883280
  ReceiverType (String) = b
  ReceiverID (String) = 003669972
  POINT (-80.161767 25.773433)

Me gustaría importar esa tabla, con los puntos, a una base de datos de MySQL. Sin embargo, cuando intento hacerlo, la columna de puntos no aparece en la base de datos (la columna "SHAPE" contiene datos binarios, no puntos lat/lon):

ogr2ogr -f MySQL MySQL:ais2,user=ais,password=ais Miami.gdb -lco ENGINE=MyISAM

show columns in broadcast_; OGR_FID SHAPE sog cog heading rot basedatetime status voyageid mmsi receivertype receiverid

¿Cómo puedo importar los puntos lat/lon?

Gracias por tu ayuda.

1voto

Ahora tanto tu archivo GDB como tu base de datos MySQL tienen los datos espaciales -- puntos lon-lat -- en columnas de forma, pero codificados como datos binarios. En computación, los tipos de datos a menudo tienen representaciones internas y externas diferentes.

Deseas ver los datos presentados en lon-lat, pero están representados internamente en formato binario. Solo necesitas usar la función apropiada para convertir los puntos en lon-lat:

AsText (geom_column)

Más información en Funciones de conversión de formatos de geometría de MySQL.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X