OpenLayers Point Geometry永远不会调整大小

时间:2014-04-11 21:57:38

标签: javascript openlayers openstreetmap

我的网站包含一个OpenStreetMaps。我使用OpenLayers将Geometry.Point放置在城市之上。

一个按钮允许用户调整此点的大小,但它永远不会调整大小,我无法理解为什么。

这是我的代码:

var button = document.myform.btClear,
    map = new OpenLayers.Map("map_element", {}),
    osm = new OpenLayers.Layer.OSM(),
    vectors = new OpenLayers.Layer.Vector(),
    fromProjection = new OpenLayers.Projection("EPSG:4326"),
    toProjection = new OpenLayers.Projection("EPSG:900913"),
    position = new OpenLayers.LonLat(6.9673223,50.9572449).transform(fromProjection, toProjection),
    point =  new OpenLayers.Geometry.Point(6.9673223,50.9572449).transform(fromProjection, toProjection);

map.addLayer(osm);
map.addLayer(vectors);
map.setCenter(position, 5);

pointFeature = new OpenLayers.Feature.Vector(point);
vectors.addFeatures([pointFeature]);

button.onclick = function() {
    vectors.features[0].geometry.resize(1.5, point);
    vectors.redraw();
};

你能帮我解决一下吗?

由于

http://jsfiddle.net/39KE5/1/

1 个答案:

答案 0 :(得分:0)

我没有和OpenLayers合作太多,所以把这里的所有内容都拿出来。我正在看这个例子(http://dev.openlayers.org/releases/OpenLayers-2.12/examples/resize-features.html),我认为几何调整大小与你想要的不同。我认为你真正想要改变的是这一点的风格。我在http://jsfiddle.net/MLundin617/39KE5/2/修改了你的小提琴作为例子。它并不完整,因为点击也设法改变了点的颜色,但我相信它更接近你正在寻找的东西。

这是一个重大变化:

radius = 2
button.onclick = function() {
    radius = radius * 1.5
    vectors.features[0].style = {pointRadius: radius}
    vectors.redraw();
};

(另外,在你的jsFiddle中,你引用了不正确的表单元素,因此无法定义onclick。)

如果有帮助,请告诉我。很想看到任何其他答案。