2013-08-01 11 views
0

나는 지형 벡터 점으로 추가 된 마커가있는 openlayers지도가 있습니다. 스타일 옵션에서는 각 크기를 설정합니다. 그러나 문제는 확대 또는 축소하면 페이지 전체를 다시로드 할 때까지 모두 동일한 크기가된다는 것입니다. 즉, 일단 확대 또는 축소하면 모두 동일합니다. 나는이를로드 할 때Openlayers 마커 크기

var layer_style = OpenLayers.Util.extend({}, 
OpenLayers.Feature.Vector.style['default']); 
var style = OpenLayers.Util.extend({}, layer_style); 

var pointLayer = new OpenLayers.Layer.Vector("Point Layer"); 

map.addLayers([terrain, road, satellite, hybrid, pointLayer]); 
var lonlat = new OpenLayers.LonLat(0, 140); 
lonlat.transform(proj, map.getProjectionObject()); 
map.setCenter(lonlat, 2); 

var point = new OpenLayers.Geometry.Point(-40, -40); 
point = point.transform(proj, map.getProjectionObject()); 
style.pointRadius = 10; 
var pointFeature = new OpenLayers.Feature.Vector(point, null, style); 
pointLayer.addFeatures([pointFeature]); 

var point = new OpenLayers.Geometry.Point(-40, -40); 
point = point.transform(proj, map.getProjectionObject()); 
style.pointRadius = 40; 
var pointFeature = new OpenLayers.Feature.Vector(point, null, style); 
pointLayer.addFeatures([pointFeature]); 

, 나는 두 개의 마커, 하나 개의 크기 (10), 기타 (40)을 얻을하지만 확대하거나 밖으로, 그들은 모두 같은 크기가된다.

답변

0

매번 스타일 객체의 pointRadius 속성을 덮어 쓰고 있으므로 마지막에는 OpenLayers가 스타일을 가리키기 때문에 마지막 값이 사용됩니다. 룩업을 사용하면 pointRadius가 주어진 지형지 물 속성에 의존하게 할 수 있습니다. 규칙 기반 스타일 참조 : http://trac.osgeo.org/openlayers/wiki/Styles#Rule-basedStyling