Changing the geometry of polygon in OpenLayers

المشرف العام

Administrator
طاقم الإدارة
i would like to programatically change the geometry of a polygon. feature.geometry.move() works ok, but i rather need supply a whole new geometry. When i try feature.geometry = newGeometry, the feature duplicates itself, rather then changes its position. I read the relevant code in OpenLayers and i cant see why is this happening. Any help welcomed.

function init(){ var map = new OpenLayers.Map('map'); map.addLayer(new OpenLayers.Layer.OSM("Mapnik")); map.setCenter(fromLL(new OpenLayers.LonLat(14.302,50.093561)), 14); //vector layer var layer = new OpenLayers.Layer.Vector(""); map.addLayer(layer); //one feature var geometry = fromLL(OpenLayers.Bounds.fromString("14.2989,50.0935,14.3018,50.0965")).toGeometry(); var rectangle = new OpenLayers.Feature.Vector(geometry); layer.addFeatures(rectangle); //move it 30pixels up - works rectangle.geometry.move(0,map.getResolution()*30); layer.redraw(); //change geometry - wrong - duplicates rectangle.geometry = fromLL(OpenLayers.Bounds.fromString("14.302,50.0935,14.6018,50.0965")).toGeometry(); rectangle.geometry.clearBounds(); layer.redraw();}function toLL(obj){return obj.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));}function fromLL(obj){return obj.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));}

أكثر...
 
أعلى