个人技术分享

ElasticSearch地理空间数据写入

申明:我将地理空间(GIS)数据写入ElasticSearch的方式仅代表我个人,如果有其他更好的方式可以告知我!

思路介绍

我习惯使用Java+PostgreSQL+PostGIS的方式处理地理数据。

这次的数据主要分两类:点(Point)的POI数据和Shape(点、线、面)混合数据。

接下来介绍我的数据处理思路:

  1. 原始数据使用arcmap处理成一个矢量 ,并且将坐标系转换设置为EPSG4326(WGS84经纬度坐标)
  2. 创建PostgreSQL数据库,并添加PostGIS扩展
  3. windows环境下,使用PostGIS自带的工具或QGIS将矢量导入pg数据库中
  4. ES数据库中根据数据字段创建对应的mappings
  5. 使用Java将pg数据库中的数据读出来批量写入es

实现(geo_point)

数据处理

这里我使用江苏的点数据为例,使用arcmap或QGIS将数据处理成一个WGS84经纬度坐标的标准geo_point点矢量,如图所示:

image-20240619162845898