- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在过去的几个月里,我一直在使用 GitHub (link here) 上的 openstreetmap-tile-server 从 Docker 容器渲染 OSM tiles。切片服务器使用 PostgreSQL 数据库来存储其数据。通过对创建我自己的 OSM 切片和我自己的切片服务器进行更多研究,很多教程都提到了使用 PostgreSQL 数据库。
这是为什么?为什么不使用 MySQL 等 SQL 数据库呢?对于 openstreetmap 数据等数据集,使用 PostgreSQL 而不是不同的 SQL 数据库可以获得/获得什么?
编辑:编辑问题,表明我正在将 Postgres 与其他 SQL 数据库进行比较。
最佳答案
最初 MySQL 实际上用于存储实际 OSM 数据的主要内部 OSM 数据库,并通过 OSM API 查询和修改。不过,出于图 block 渲染和其他目的,从未使用过内部原始格式,而是将 OSM 数据导出为压缩 XML 或更紧凑的二进制 PBF 格式,并将其导入到更适合进一步处理的数据库模式中。
通常这是使用“imposm”或“osm2pgsql”工具完成的,使用 PostgreSQL/PostGIS 组合作为 RDBMS 的选择,因为它提供了最强大的 GIS 功能集,至少在免费和开源中是这样世界。
OSM 主数据库是一个异常(exception),因为对它的任何查询总是只检索矩形区域的数据,因此实际上不需要 GIS 扩展,在这种情况下将坐标存储为简单的数字数据就足够了。最终决定也将其切换到 PostgreSQL,以减少在 openstreetmap.org 站点设置中维护的不同组件的数量。
理论上,您也可以使用其他支持 GIS 的 RDBMS,例如SQLite 或 MariaDB/MySQL 的 SpatiaLite 变体,但与 PostgreSQL/PostGIS 设置相比,它们有其缺点:
例如SpatiaLite 只有在只有一个线程访问数据时才有用,并发访问时它根本无法很好地扩展。
而 MariaDB 和 MySQL 只真正或多或少地实现了 OpenGIS SQL 规范的最低限度,甚至在过去几年才真正实现。在功能方面,两者至少仍落后于 PostGIS 十多年。
免责声明:即使是我,虽然在 MariaDB Corp 工作,并且之前曾在 MySQL AB 工作过,总共十多年,但一直建议在 GIS 应用程序中使用 PostGIS 而不是 MariaDB 或 MySQL,除非有人绑定(bind)到 MariaDB 或 MySQL已经出于其他原因。
关于postgresql - 为什么开放街道 map (OSM) 使用 PostgreSQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63020402/
我正在尝试使用 html5 创建一个世界,或者更确切地说以第一人称视角创建一条街道,而不使用 WebGL。 不幸的是,我找不到任何可以使用的引擎。有谁知道可以做到这一点的引擎,还是我必须自己编写引擎?
在我的 Android 应用程序中,我包含了谷歌地图。现在我想获取有关您周围地区的信息。例如,你是在公园/森林/海滩……所以我基本上想要一个用“水”回答输入坐标 53°33'40.9"N 10°00'
在 9535 上发出的 HERE 自动完成 API 请求返回 5 个结果,这些结果都与结果类型 street 匹配,而不是像 Google 那样匹配 postalCode默认情况下的 map 。例如
我正在考虑一个项目,我需要标题中描述的信息。 Google Maps API 是否提供此类信息,或者有人知道如何获取这些信息吗? 项目将使用 PHP、HTML 和 Javascript 完成。 最佳答
如果地址可以由子元素组成:Street、City、State、PostalCode...您如何允许此 XML: Somestreet zip
有没有办法使用 Google Maps API V3 突出显示指定的道路或街道? 这是我想要获取的示例(来自在谷歌中搜索某个地方的图像):example 样式化 map 不能满足我的要求,因为它适用于
我想创建一个应用程序来跟踪安装我的应用程序的用户,因此我有以下用于跟踪的代码,该代码运行良好,但它只会返回城市名称。但我需要完整的详细信息,例如街道名称、城市,等等。 public class
我正在创建一项服务,用户可以在其中访问世界任何地方的地址。首先,我认为 Google Places API 会很高兴,但看看这张图片(下图),问题是如何以正确的顺序过滤掉国家、城镇、街道地址。首先,我
如何将 ESRI 街道 map ( https://leaflet-extras.github.io/leaflet-providers/preview/#filter=Esri.WorldStree
一个简短的问题,希望有人能解答: 如何使用 Here Android SDK Premium 导航通过 DIR_NO_CARS、NO_THROUGH_TRAFFIC、DIR_NO_TRUCKS 属性的
我正在开发 Google 地点自动完成服务,我需要过滤特定于国家/地区的地点! 引用网站:-- https://www.grubhub.com (特定国家/地区、城邦-邮政编码) 我找到了一个例子:-
我有两个 PCollections:一个从 Pub/Sub 中提取信息,另一个从 CSV 文件中提取数据。在每个管道中进行一些不同的转换之后,我想将两者合并到它们共享的公共(public) key “
DSMOD 似乎没有能力更新用户的这部分 AD 属性(街道、邮政信箱、城市、州、邮政编码)。有没有我可以从 powershell 或 cmd 运行的命令行替代方案? 动机:我正在尝试用特定的用户信息填
DSMOD 似乎没有能力更新用户的这部分 AD 属性(街道、邮政信箱、城市、州、邮政编码)。有没有我可以从 powershell 或 cmd 运行的命令行替代方案? 动机:我正在尝试用特定的用户信息填
我想在 OSM 中的两点之间画一条线,但我找不到任何可以帮助我的东西。像 googlemap 中的 Polyline 之类的东西。 public class MainActivity extends
我正在使用 PKPaymentAuthorizationViewController 及其委托(delegate)方法集成 Apple Pay。当用户更改地址时,将触发以下委托(delegate)方法
我需要使用 Xamarin Forms/Android 的 Intent 以编程方式打开 Android 联系人应用程序。当“添加新联系人” Activity/屏幕出现时,我想用以下字段预先填充它:
我是一名优秀的程序员,十分优秀!