- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用来自 openstreetmap 的地理数据(国家大小)。建筑物通常是没有门牌号的多边形,带有门牌号的单个点位于建筑物的多边形内。建筑物可能有多个门牌号。
我想将门牌号与建筑物的多边形相匹配。
对于每个门牌号,对每个建筑物多边形执行多边形中的点测试。
对于大约 50,000,000 座建筑物和 10,000,000 个地址点来说太慢了。
为建筑物多边形构建和索引以加速搜索每个门牌号点的周围多边形。
对于这种多边形结构,您会推荐什么索引或策略?多边形从不重叠,并且该区域被稀疏地覆盖。
这个问题被复制到 gis.stackexchange.com。建议在此处发布问题。
最佳答案
由于听起来您要测试的是格式正确的多边形,因此我会使用带 AABB 检查的空间散列,最后是完整的多边形中的点测试。希望到那时您将平均每个地址三个或更少的多边形点测试。
这有几个优点:
当然,网格作为空间结构的常见缺点:
假设您最终在每个网格中有 N
个最大多边形,并且每个多边形都有 P
点,并且您有 B
建筑物和A
地址,您正在查看 O(B*P + N*A)
。由于 B
和 P
可能相对较小,尤其是平均而言,您可以考虑这个 O(B + N)
—— 几乎是线性的。
关于algorithm - 匹配建筑物上的门牌号(多边形点测试的特例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650308/
我正在从事一个 map 项目,该项目涉及使用 Tangram(一个很棒的 webgl map 库)在 map 上可视化建筑物。 Tangram 建筑来自 Open Street Maps,并使用 OS
我用 MapboxGL JS v2 与 mapbox://styles/mapbox/streets-v11风格。 我使用此代码显示 3D建筑在我的 map 上: map.addLayer({
我正在使用适用于 Android 的 here-sdk 实现一个简单的导航应用程序。它有一些很棒的功能,与我当前基于谷歌地图的应用程序相比非常有用。但是,该应用程序在导航时以及我只是在 map 上滚动
我的 map 上有建筑物的矢量数据,并希望它们根据已知高度突出显示。 我知道这是一项常见任务,但我没有找到任何令人满意的解决方案。 我在 mapnik 中看到了实现,他们使用多边形中所有顶点的最小 Y
我目前正在努力用 Java 对集合进行排序。我收到错误消息“Comparison method violates its General contract”。我也理解此错误消息,但我(主要)使用 Lo
我正在开发 google maps v2 android 应用程序,我致力于添加自定义 map 图 block ,但我的问题是:是否有任何可能的方法可以在我的自定义 map 图 block 上添加 3
我正在使用 WebGL 在 map 顶部的 Canvas 层上绘制线条和多边形以获取 OSM 数据。我编写了一个查询,该查询从 planet_osm_polygon 表返回多边形列表。它将列表作为 J
我知道更改 mapkit 颜色并不理想,但特别是对于我正在创建的基于位置的游戏,我希望颜色不那么引人注目而更暗。有没有一种内置的方式可以实现这一点?由于游戏不会特定于某个区域,因此自定义覆盖不会真正起
我一直在研究文档,但没有找到任何关于此的信息。有没有办法在基本 map 中禁用 3D 建筑物 View ? 现在我得到以下 View : map view with 3d? buildings 但我希
我最近开始使用 Maps Android Api (V2) 并与自定义图 block 叠加层集成。我能够成功地添加叠加图像,但是当叠加在 3d 建筑物上时它们看起来很傻。我希望能够全局或针对特定建筑物
在 GTA(第一款和第二款游戏)中,您可以从上方看到城市。 我认为这座建筑只有 5 个表面,每个表面上都有一个图像。如果玩家靠近建筑物,您会注意到“真实建筑物”的这种“效果”...... 我希望你明白
我是一名优秀的程序员,十分优秀!