- 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/
我正在尝试从一个 map 的 map 的 map 的 map 的 map 的 map 的 map 的 map 的 map 的 map 的 map 的 map 的 map 的 map 的 map 的 m
我是 Haskell 的新手,我认为函数 map map和 map.map在 Haskell 中是一样的。 我的终端给了我两种不同的类型, (map.map) :: (a -> b) -> [[a]
我的目标是创建一个 map 的 map ,这样我就可以通过它的键检索外部 map 的信息,然后通过它们的键访问它的“内部” map 。 但是,当我得到每个内部映射时,我最初创建的映射变成了一个对象,我
如何使用 Java8 编写以下代码? for (Entry> entry : data.entrySet()) { Map value = entry.getValue(); if (valu
我有覆盖整个南非的图片。它们为Tiff格式,并已将坐标嵌入其中。我正在尝试拍摄这些图像(大约20张图像),并将它们用作我的iPhone应用程序中的地图叠加层。我的问题在于(准确地)将地图切成图块。 我
所以我有 2 std::map s >一个是“旧的”,一个是“新的”,我想知道哪些文件被删除了,这样就能够遍历差异并对 shared_ptr 做一些事情。这样的事情可能吗?如何做到? 最佳答案 虽然
是否可以将当前查看的 google.maps.Map 转换为静态图像链接,以便我可以获取图像并将其嵌入到 PDF 中? 我在 map 上添加了一些带有自定义图标的标记,所以我不确定这是否真的可行。 如
你能帮我吗 Java Streams ? 从标题可以看出我需要合并List>>进入Map> . 列表表示为List>>看起来像: [ { "USER_1":{
对于 idAndTags 的第二个条目,内部映射被打乱,但第一个条目则不然 第一次接近! for (Map.Entry> entryOne : idAndTags.entrySet()) {
我将从我的代码开始,因为它应该更容易理解我想要做什么: @function get-color($color, $lightness) { @return map-get(map-get($col
我过去曾在许多网站上使用过 Google map ,但遇到了以前从未遇到过的问题。 map 窗口正在显示,但它只显示左上角的 map 片段,以及之后的任何内容(即使我在周围导航时),右侧也不会加载任何
众所周知,这些 map ,无论是常规街道 map 还是卫星 map ,在中国的特定地区都无法正确排列。那么哪个 map 排列正确,是卫星 map 还是默认街道 map ?一些网站表明卫星 map 是正
在拖尾事件之后,我面临着获取此处 map 中的 map 边界的问题。我需要新的经纬度来在新更改的视口(viewport)中获取一些项目/点。我只是想在拖动结束时获得谷歌地图map.getBounds(
我想做的是通过 ajax API 显示以英国邮政编码为中心的小型 bing 生成 map 。我相信这是可能的;我在 Bing map 文档中找不到如何将英国邮政编码转换为可以插入 map Ajax 控
我有一个 List我想转换成的 e Map>其中外部字符串应为“Name”,内部字符串应为“Domain”。 Name Id Domain e(0) - Emp1, 1, Insuran
我的第 2 部分:https://stackoverflow.com/questions/21780627/c-map-of-maps-typedef-doubts-queries 然后我继续创建 I
是否可以在 1 行中使用 Java8 编写以下所有 null 和空字符串检查? Map> data = new HashMap<>(holdings.rowMap()); Set>> entrySet
我正在审查一个项目的旧代码,并使用 Map 的 Map 的 Map 获得了如下数据结构(3 层 map ): // data structure Map>>> tagTree
这可能是一种不好的做法,但我还没有找到更好的解决方案来解决我的问题。所以我有这张 map // Map>> private Map>> properties; 我想初始化它,这样我就不会得到 Null
我们在 JDK 1.7 中使用 HashMap,我在使用 SonarQube 进行代码审查时遇到了一些问题。 请考虑以下示例: public class SerializationTest imple
我是一名优秀的程序员,十分优秀!