首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openlayers标记大小

Openlayers标记大小
EN

Stack Overflow用户
提问于 2013-08-02 00:00:34
回答 1查看 1.1K关注 0票数 0

我有一个openlayers贴图,带有作为几何矢量点添加的标记。在样式选项中,我为每个设置了一个大小。然而,问题是,如果我放大或缩小,它们都会变成相同的大小,直到我再次加载整个页面。换句话说,一旦我放大或缩小,它们都是一样的。

代码语言:javascript
复制
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号。但当我放大或缩小时,它们都变得相同大小。

EN

回答 1

Stack Overflow用户

发布于 2013-08-02 18:45:55

您每次都会覆盖style对象的pointRadius属性,因此最后将使用最后一个值,因为OpenLayers将只指向该样式。您需要做的是使用查找来让pointRadius依赖于给定的特性属性。请参阅基于规则的样式:http://trac.osgeo.org/openlayers/wiki/Styles#Rule-basedStyling

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17999016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档