如何从Web应用程序的开放街道地图开始

时间:2015-01-22 16:10:16

标签: gis openstreetmap osmf osmosis

我打算创建一个新的Web应用程序,我想要使用开放街道地图,我需要开放街道地图的源代码。在我的网络应用程序中,我需要在图层上看到不同形状文件的功能,数据绘图和地理位置-referencing。 请给我一些建议,如何从头开始?

1 个答案:

答案 0 :(得分:1)

根据您的描述,您实际上需要一些东西,而不仅仅是一些小样本:

  1. 用于显示静态地图(例如:OpenStreetMap)和动态数据的客户端库。
  2. 服务器端地理空间服务,用于根据您自己的shapefile构建地图。这适用于复杂且更大,更静态的地图。您需要地图创作工具和地理空间服务器(它们通常配对在一起),设计地图,构建平铺图像缓存并发布为WMS / WMTS服务,然后您可以将它们与OpenStreetMap一起显示在网站上
  3. 自定义Web服务,用于将简单的shapefile或查询结果从空间数据库转换为客户端库支持的任何可读格式。这通常用于动态的,小量的空间数据,而且绘图的样式最小。
  4. 如果您想从3组织简单的shapefile,通常您还会使用PostGIS / PostgreSQL或Microsoft SQL Server等空间数据库。它们将几何特征存储在数据库列中,并扩展SQL以提供空间操作(如Contains或Union),允许您一起查询普通数据和几何特征,或将结果作为可读格式(如WKT或GML)返回。您需要其他实用程序来将shapefile加载到它们中。
  5. 对于1,OpenLayers是网站上最受欢迎的地图库之一。它是纯JavaScript和开源的,另一个选项是Esri的ArcGIS SDK - 它们有用于Web的SDK(包括JavaScript和Silverlight)以及许多其他选项;它们是免费使用的,一半的功能是作为带有源的样本提供的,例如地图打印,并且它们的SDK除了支持自己的专有服务外,还支持所有开放标准。两者都直接支持OpenStreetMap,而在Esri的网站上,他们几乎每个功能都有教程/样本。

    对于2,您可以使用免费的GeoServer或MapGuide(使用创作工具),或使用商业ArcGIS服务器和ArcMap作为创作工具。

    对于3,你必须google。应该有大量的库来加载shapefile。对于空间数据库来说,它更容易,因为它们可以通过SQL变体中的内置函数转换为人类可读的WKB或GML。

    对于4,Microsoft SQL Server是最简单的使用,快递版是免费的,虽然功能很糟糕,它的性能很糟糕,直到2012年.PostGIS / PostgreSQL功能更丰富,包括不同坐标之间的直接转换系统。我从未使用过Oracle,但它们甚至支持拓扑格式。

    PS:虽然地理空间服务器还可以实时绘制空间数据并将其渲染为位图以供网站显示,但它会立即陷入您的网络服务器。如果您需要处理动态绘制大量空间数据,您必须在OpenLayers中尝试使用canvas或SVG渲染器。