像OpenStreetMap一样显示地图

13

我喜欢OpenStreetMap展示地图的方式,它几乎看起来像谷歌地图。我已经在我的笔记本上安装了GeoServer和PostGis。我还为印尼下载了这个Cloudmade OSM文件。我下载了indonesia.osm.bz2。

我成功将其导入到我的PostGis中,并在GeoServer上进行了设置,但它并没有像OpenStreetMap一样显示地图。我在GeoServer中选择了planet_osm_polygon作为我的图层。最终,我使用OpenLayers显示了这张图片。 alt text http://deerawan.com/blogimages/map_polygon.jpg

但我希望显示的是这样一个地图 alt text http://deerawan.com/blogimages/map-indo.png

我使用的Cloudmade OSM文件可能是错误的吗?

感谢您的帮助。

4个回答

10

我建议您按照这篇来自Geoserver博客的教程进行操作。

在那里,您将找到一份逐步指南,介绍如何设置OSM数据,包括数据库导入、样式等。


谢谢igorti的回复,我确实也看过这个教程。但主要问题是我需要下载近10GB的星球文件。不幸的是,我的国家的互联网速度非常慢。当我在cloudmade上发现印度尼西亚OSM时,我很高兴。我认为我可以获得与OpenStreetMap相同的地图,而无需使用星球文件。无论如何,你有没有使用过星球文件? - deerawan
1
不,我没有,但我应该一定要试一下!使用整个星球或只是某个国家应该没有区别。你按照上面的指南一步一步操作了吗?还是没有生效? - igorti
是的,结果并不如我所预期的那样。恐怕我错过了上面教程中的一些步骤。 - deerawan
4
你可以在http://download.geofabrik.de/osm/下载特定区域的较小地图文件,对于你来说,澳大利亚-大洋洲大约为200MB,或许这会是更好的起点? - milovanderlinden

4

1
谢谢你的回复,Tonio。嗯,osm文件只包含数据吗?我无法使用osm图层,因为我想离线使用地图(没有互联网连接)。因此,我必须建立自己的地图服务器。你给我的第二个链接(mapserver / wiki)有结果截图吗? - deerawan

4

GeoServer渲染地图需要两个东西:

数据

仅导入OSM星球转储文件并不足以获得漂亮的地图,你需要更多的东西,不仅仅是道路和地标。OpenStreetMap添加了一个海岸线数据集(我认为实际上是从OpenStreetMap数据派生出来的,但为了性能原因进行了预处理),以及一些来自Natural Earth项目的数据。

样式表

GeoServer使用OGCSLD格式的样式,所以您需要找到或创建一些特定于OpenStreetMap数据集的SLD样式。以下是您可以查找它们的几个建议:

我还在开发一个将Mapnik地图文件转换为GeoServer配置的工具。它可以与MapQuest Open的样式一起正常工作,但仍然存在一些使用于openstreetmap.org的问题。如果您想尝试一下,请提出Bug报告。


0

我认为你可能错过了海岸线和世界边界。在osm wiki上有更多关于从哪里下载额外数据以绘制海岸线的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接