我的网站包含一个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();
};
你能帮我解决一下吗?
由于
答案 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。)
如果有帮助,请告诉我。很想看到任何其他答案。