2012-06-01 21 views
3

我开始了映射。我想查看一张法国地图,上面有一层可以个性化的图层。OpenLayer + OpenStreetMap +自定义ShapeFile

我已经有shapefile格式的自定义图层。 我根本不知道是否必须创建OpenStreetMap服务器,或者是否可以直接使用Web应用程序。

你能不能给我地图显示与我的额外层shape文件格式的起点?

我猜的任务是复杂的,但你必须通过地方开始......

非常感谢你

回答

7

这取决于你想要做什么。它是一个大的Shapefile吗?

你可以做一些事情,而创建的OpenLayers地图:

  • 使用背景砖公众OpenStreetMap的服务器(默认OSM层实现),并添加您的功能层(点,多边形,无论是在那里)作为OSM中的矢量要素图层。为了让您的载体功能,你的Shape文件,你可以的:
    • 在一个体面的基于GIS格式预加载它们在你的数据库。这使您可以在执行边界框查询时提供功能,并且如果您的功能超过1000/10000,则需要此功能。
    • (使用浏览器https://github.com/wavded/js-shapefile-to-geojson或具有相同ogr2ogr工具preconvert他们)
  • 或者,如果您不需要使用这些功能的交互Shape文件转换成通过的OpenLayers可读的格式,你可以结合您的数据与OSM数据,并创建您的自定义瓷砖。这是更轻质的浏览器,但它是相当复杂(读入数据库中的所有数据OSM,产生与Mapnik的砖)
2

如果你想在你的形状档图层添加的OpenStreetMap(OSM),只需添加下面的代码行,

var osm = new OpenLayers.Layer.OSM(); 
map.addLayer(osm); 

虽然我不明白,为什么你需要创建一个OpenStreetMap服务器?

1

need not to create OpenStreetMap server通过自己的

如果你想比使用 google or openstreetmap作为基层

并显示层,在地图上显示您的自定义层

地图(自带形式形状文件)。