首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >osm.pbf中的c#地址查找

osm.pbf中的c#地址查找
EN

Stack Overflow用户
提问于 2018-01-29 08:55:33
回答 2查看 772关注 0票数 1

我正在尝试从Openstreetmap摘录中为我当前的项目开发一个地址查找API (可能是Json格式)。我首选的语言是C#。

如果有人能给我解释一下osm.pbf extract的数据/节点关系。我读过这个wiki,但无法弄清楚其中的关系或结构,因此也无法使用omssharp做太多事情。

因此,如果有人可以用任何语言向我解释或给出一个示例(我只需要了解逻辑/关系),我如何根据建筑物名称/地址字符串/邮政编码进行搜索/查询,并返回相关行。当google地址查找起作用时,你输入一个地址,它就会给你建议。

如果有人可以帮助我弄清楚数据关系,我更喜欢任何索引方法,如lucene,以便更快地查询,而不是将负载放在SQL Server上。

此外,如果可能的话,找出两个地址之间的行驶距离/路线的逻辑将是非常好的。

仅供参考:我使用的是great_britain.osm.pbf (985mb压缩),我有完全访问Ubuntu服务器的权限,可以安装pgSql。已尝试从具有24 of内存、2x6核心2.9 out和1tb固态硬盘的工作站导入SQL server Express,但在使用osm2sql时出现内存不足异常。

任何帮助都将不胜感激。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-29 21:55:12

原始OSM数据仅有限地用于地理编码。您必须首先对此数据进行预处理。

原因是addresses in OSM不必以全格式指定。例如,对于广泛使用的Karlsruhe Schema,指定门牌号和街道名称来定义单个地址就足够了。其他信息,如城市、邮政编码和国家,可以保留为空。这种方法之所以有效,是因为在OSM中,有单独的administrative boundaries用于定义市政、县、国家等。

大多数OSM-based geocoders在将OSM数据导入其数据库时都会执行预计算步骤。此步骤通过将各个地址标记与它们所在的管理边界进行比较来计算完整的地址层次结构。

不要重复发明轮子。创建一个好的地理编码器真的很难。改用现有的基于OSM的地理编码器之一。

票数 2
EN

Stack Overflow用户

发布于 2018-10-30 17:25:26

我也有同样的问题,所以我创建了一个SQL查询,它可以为您做到这一点:

https://github.com/francesco1119/OSM_to_MSSQL

还可以在存储过程中使用它,并每天刷新数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48492996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档