2015-01-22 80 views
0

我打算创建一个新的Web应用程序,我想要使用开放的街道地图,我需要开放街道地图的源代码。在我的Web应用程序中,我需要查看图层上的不同形状文件,数据绘图和地理参考。 请给我一些建议,如何开始呢?如何开始打开街道地图的Web应用程序

+0

你已经看过http://switch2osm.org了吗? – scai

+0

@scai是在java吗? –

+0

“它”?你在说什么? switch2osm.org解释了如何创建基于OSM的Web地图。根据具体任务的不同,可以使用不同的工具。 – scai

回答

1

从你的描述,你真正需要的几件事情,不仅仅是一些小样本:和动态数据:

  1. 显示静态地图(OpenStreetMap的前)客户端库。
  2. 服务器端地理空间服务,用于从自己的shape文件构造地图。这是复杂和更大,更静态的地图。您需要一个地图创作工具和地理空间服务器(它们通常配对在一起),设计地图,构建平铺图像缓存并作为WMS/WMTS服务发布,然后您可以将它们与OpenStreetMap一起显示在网站上。
  3. 自定义Web服务将简单形状文件或查询结果从空间数据库转换为客户端库支持的任何可读格式。这通常适用于动态的小量空间数据,并且绘图的样式最少。
  4. 如果你想从3组织简单的形状文件,通常你还会使用空间数据库,如PostGIS/PostgreSQL或Microsoft SQL Server。它们将几何特征存储在数据库列中,并扩展SQL以提供空间操作,如Contains或Union,从而允许您一起查询普通数据和几何特征,或者将结果作为可读格式(如WKT或GML)返回。你需要其他的工具来加载shapefile。

对于1,OpenLayers是网站上最流行的地图库之一。它是纯粹的JavaScript和开放源代码,另一种选择是Esri的ArcGIS SDK--它们具有用于Web的SDK(包括JavaScript和Silverlight)以及其他许多SDK;它们可以免费使用,其中一半功能是作为带有源代码的样本提供的,例如地图打印,并且它们的SDK除支持自己的专有服务外,还支持所有开放标准。两者都直接支持OpenStreetMap,并且在Esri的网站上,它们几乎为每个功能提供了教程/示例。对于2,您可以使用免费的GeoServer或MapGuide(使用创作工具)或商业ArcGIS服务器加ArcMap作为创作工具。

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

对于4,Microsoft SQL Server是最简单易用的,并且快速版本是免费的,虽然功能方面很糟糕,它的性能直到2012年仍然糟糕。PostGIS/PostgreSQL功能更丰富,包括直接转换坐标系统。我从来没有使用Oracle的,但他们甚至支持拓扑格式。 PS:虽然地理空间服务器也可以实时绘制空间数据,并将它们呈现为位图以供网站显示,但它会立即导致Web服务器无法正常运行。如果您需要处理动态绘制大量空间数据集,则必须在OpenLayers中试验canvas或SVG渲染器。

相关问题