2012-04-15 98 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