【问题标题】:create a geoshape and retrieve latitude/longitude pairs within the shape from the indexed data创建一个地理形状并从索引数据中检索形状内的纬度/经度对
【发布时间】:2015-03-19 01:42:43
【问题描述】:

我有一个输入地理编码列表(纬度/经度对),我们可以使用它创建地理形状。我有按行索引的数据,每行都有地理编码(纬度/经度)对。对于基于 Java 的应用程序,这是使用我的输入地理编码列表创建形状然后搜索索引数据列(纬度和经度)并根据地理编码落入形状的行列表的最佳技术。

【问题讨论】:

    标签: geospatial shape geo


    【解决方案1】:

    您正在寻找 Spatial4J,它为 SOLR 和 Lucene 添加了空间支持。该支持是通过Java Topology Suite (JTS) 提供的,它也可以在任何独立的 Java 应用程序中使用。它提供了包含和相交(以及更多)的功能。 C++ 端口 GEOS 提供了 Postgis 空间谓词函数背后的许多功能。 JTS 成熟、快速且经过良好测试。

    【讨论】:

    • 我使用 Spacial4j、jts 和 lucene 索引来执行此操作,一些代码在下面给出一些失败的地方 Shape pointShape = spatialContext.makePoint(latitude, longitude); for (IndexableField f : spatialStrategy.createIndexableFields(pointShape)) { doc.add(f);它能够索引我的数据文件中的行,但它对某些行失败,例外是.. Bad Y 值 -134.16105 不在边界 Rect(minX=-180.0,maxX=180.0,minY=-90.0, maxY=90.0)
    • 您的纬度/经度点是否正确? -134,将超出纬度范围。 spatialContext.makePoint(x, y) 表示 makePoint(lon, lat)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多