2012-04-15 1 views
1

HTML을 사용하여지도를 만드는 데 익숙하며 기본지도 (도로)에 벡터 레이어 2 개 (장소, 점)를 추가하려고 시도했지만 벡터 레이어를 볼 수는 없습니다. 지도. 레이어는 기본지도에 벡터 오버레이로 나타납니다. 레이어는 레이어 전환기에 표시되지만 화면에 표시되지는 않습니다. 문제는 벡터 레이어가 호출되는 방식과 관련이 있다고 생각합니다. 벡터 레이어를 표시 할 수있는 솔루션은 무엇입니까? 감사합니다.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

레이어의지도가 맵과 동일한 투영법을 사용합니까? –

+0

모든 레이어가 동일한 프로젝션에 있습니다. 형식이 새로운 OpenLayers.Layer.Vector에서 새로운 OpenLayers.Layer.WMS로 변경되면지도에 표시 될 수 있습니다. 그러나 이것만으로 기본지도 레이어가됩니다. – martynminear

답변

2

WMS 프로토콜을 통해 벡터 데이터를 표시하려고합니다. 이 목적으로 OpenLayers.Layer.WVC 인스턴스 대신 OpenLayers.Layer.Vector 인스턴스를 사용해야합니다. 오버레이로 WMS 레이어를 표시하는 경우 :

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