使用OpenLayers访问Openstreetmap数据与使用谷歌地图有何区别?

5
我正在尝试使用地图提供商,想知道这些提供商中哪个更好。目前为止,所有我读到的资料都表明OSM数据更好,主要是因为它是开放的且离线可用。但我无法确定应该使用哪一层。
API支持如何? 使用哪些瓦片?(OpenStreetMaps使用的mapnik似乎不错且免费) OpenStreetMaps瓦片使用政策(http://wiki.openstreetmap.org/wiki/Tile_usage_policy)确实有限制。
哪些其他滑动地图图层与openstreetmaps好/更好(免费/付费)。
我的要求是:
允许用户查询路线。 允许用户根据GPS坐标查找位置。 添加一个图层以显示基于位置的一些我的数据集。
1个回答

14

OpenStreetMap数据更好的原因是:

  1. 它是免费和开放的。
  2. 该数据由成千上万的用户提供,比Google地图数据更精确,覆盖的信息更多。(除了卫星视图,OSM中不存在)。

瓦片 - 取决于您想要构建的应用程序。对于小型(http请求数量不高)的Web应用程序,可以使用高度记录并可靠的网络API

OpeenStreetMap的真正优势在于,使用OSM数据和一些工具来构建自己的OSM服务器(这里有一篇很好的文章),并使用Mapnik或Osmarender瓦片渲染引擎生成自己的瓦片,可以用于Web应用程序。这就是为什么Tile使用限制存在,因为他们推荐托管和使用自己的服务器瓦片。

Mapnik和Osmrender之间的主要区别在于后者导出SVG瓦片格式。

关于您的需求的信息:

A. 路线规划

可以使用OSM数据构建路线规划Web应用程序。在OpenStreetMap wiki上这里有一份路线规划程序和Web服务列表

以下是两个使用OpenStreetMap进行路线规划的网站,可以让您了解它在Web应用程序中的使用方式:

B. 根据GPS坐标搜索

您可以使用反向地理编码并查询OSM数据库来获取GPS坐标,使用Nominatim工具。这里是它的相关信息。
这个Web应用程序也使用了该工具。
这里是可供使用的Web地图库列表
OpenLayers 可以使用由Mapnik生成的瓦片,并且它是一个常用的库(无需服务器端依赖),有大量文档。它也可以与Google地图一起使用,值得一试。
Polymaps 与由Osmarender生成的SVG瓦片相结合非常好。 它可以基于标记-用户位置生成特定区域的显示/图表。

感谢您提供详细的信息和祝福。 正在查看链接。 我担心自己托管服务器/创建自己的瓦片的成本。以及制作瓦片所需的时间。 您能否提供相关信息? - ThinkingMonkey
瓦片的大小取决于导出区域 - 对于最大18级缩放和整个星球,它可能非常大(几TB),这是巨大的!您可以在此处找到一份瓦片服务器CDN提供商列表,您可以使用其中之一。导出瓦片的时间以及导入OpenStreetMap数据文件的时间也取决于服务器的性能(对于欧洲的18级缩放大约需要48-64小时)。作为替代方案,您可以选择实时生成瓦片。请参阅此处的说明:http://wiki.openstreetmap.org/wiki/Howto_real_time_tiles_rendering_with_mapnik_and_mod_python - barbarosa

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