2012-04-15 97 views
1

我是使用HTML创建地图的新手,我一直在尝试向底图(道路)添加两个矢量图层(地点,点),但是我无法看到矢量图层地图。这些图层应显示为向基础地图的矢量叠加层。层在那里,因为它们在层切换器中显示,但不显示在屏幕上。我相信问题在于如何调用矢量图层。什么是解决方案来获取矢量图层显示。谢谢在OpenLayers地图中查看矢量图叠加

var map = new OpenLayers.Map("map-id"); 

    var roads= new OpenLayers.Layer.WMS(
    "roads", 
    "http://localhost:8080/geoserver/wms", 
    {layers: "roads"}); 

var points= new OpenLayers.Layer.Vector(
    "points", 
    "http://localhost:8080/geoserver/wms", 
    {layers: "points"}); 

var places= new OpenLayers.Layer.Vector(
    "places", 
    "http://localhost:8080/geoserver/wms", 
    {layers: "places"}); 

map.addLayer(roads); 
map.addLayer(points); 
map.addLayer(places); 
map.addControl(new OpenLayers.Control.LayerSwitcher()); 
+0

图层是否与地图具有相同的投影? – 2012-04-15 14:08:54

+0

所有图层都在相同的投影中。当格式从新的OpenLayers.Layer.Vector更改为新的OpenLayers.Layer.WMS时,它们可以显示在地图上。然而,这只是使他们底图图层 – martynminear 2012-04-15 14:12:06

回答

2

您正试图通过WMS协议显示您的矢量数据。为此,您应该使用OpenLayers.Layer.WMS实例,而不是OpenLayers.Layer.Vector。用于将WMS图层显示为叠加使用isBaseLayer选项:

map = new OpenLayers.Map('map'); 
var places = new OpenLayers.Layer.WMS('places', 
    "http://localhost:8080/geoserver/wms", 
    {layers: "places", transparent: true}, 
    {isBaseLayer: false, opacity: 1, singleTile: true, visibility: true} 
); 
map.addLayers([places]); 
+0

谢谢,这工作真的很好! – martynminear 2012-04-16 09:27:13