OpenSearch中GeoJSON存储数据用WKT格式Geo Shape查询是否可靠?
OpenSearch中Geo Shape查询使用WKT格式的有效性确认
我在OpenSearch中以GeoJSON格式存储空间数据,使用Geo Shape查询时,未提供GeoJSON格式的形状参数,而是采用WKT格式进行查询。我想确认这种方式是否会对查询产生影响,能否正常工作或返回错误结果。
我已使用样本数据进行测试,两种格式的查询返回结果一致,但仍希望确认是否存在潜在问题。以下是测试代码:
PUT test-index { "mappings": { "properties": { "geometry": { "type": "geo_shape", "tree": "quadtree" } } } } # Index some documents. POST test-index/_doc/1 { "geometry": { "type": "Polygon", "coordinates": [ [ [ 88.76953125, 39.095962936305476 ], [ 83.49609375, 36.03133177633187 ], [ 82.705078125, 32.47269502206151 ], [ 91.40625, 29.611670115197377 ], [ 95.712890625, 35.38904996691167 ], [ 88.76953125, 39.095962936305476 ] ] ] } } POST test-index/_doc/2 { "geometry": { "type": "Polygon", "coordinates": [ [ [ 106.875, 47.100044694025215 ], [ 100.37109375, 44.465151013519616 ], [ 105.99609375, 38.47939467327645 ], [ 114.521484375, 42.94033923363181 ], [ 112.236328125, 49.210420445650286 ], [ 106.875, 47.100044694025215 ] ] ] } } # Query documents based on geometry, provided in geojson format. GET test-index/_search { "query": { "geo_shape": { "geometry": { "shape": { "type": "Polygon", "coordinates": [ [ [ 99.140625, 36.03133177633187 ], [ 91.93359375, 35.31736632923788 ], [ 100.37109375, 33.284619968887675 ], [ 106.61132812499999, 37.78808138412046 ], [ 106.61132812499999, 39.57182223734374 ], [ 99.140625, 36.03133177633187 ] ] ] }, "relation": "intersects" } } } } # Query using WKT. GET test-index/_search { "query": { "geo_shape": { "geometry": { "shape": "POLYGON ((99.140625 36.03133177633187, 91.93359375 35.31736632923788, 100.37109375 33.284619968887675, 106.61132812499999 37.78808138412046, 106.61132812499999 39.57182223734374, 99.140625 36.03133177633187))", "relation": "intersects" } } } }
结论与说明
- 使用WKT格式进行Geo Shape查询是完全合法且安全的,OpenSearch原生支持WKT作为Geo Shape查询的输入格式,和GeoJSON格式的查询逻辑完全一致,不会产生错误结果或潜在问题。
- OpenSearch的Geo Shape类型底层依赖JTS(Java Topology Suite)库处理空间数据,JTS同时支持GeoJSON和WKT两种格式的解析,两种格式会被转换为相同的内部空间对象进行计算,因此查询结果完全一致。
- 注意事项:
- 确保WKT格式语法正确,比如多边形需闭合、坐标顺序为
经度 纬度(和GeoJSON一致,无需担心混淆)。 - 对于复杂空间形状,两种格式的解析效率无明显差异,无需担心性能问题。
- 确保WKT格式语法正确,比如多边形需闭合、坐标顺序为
内容的提问来源于stack exchange,提问作者cicada_
相关产品推荐
相关产品推荐

