[OpenLayers-Dev] Problems trying to move a Feature (Marker)
Cúmar Cueva
qmarqeva at gmail.com
Thu Apr 1 18:43:17 EDT 2010
Hi guys,
Please I need your help. I want to move a Marker (that was colocate using a
VectorLayer, that works ok), but I can't do that, yet... Here is the code:
For create the Map:
//Map
map = new OpenLayers.Map("map", {
controls:[
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.Attribution(),
new OpenLayers.Control.Permalink(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.KeyboardDefaults(),
new OpenLayers.Control.LayerSwitcher()
],
maxExtent: new
OpenLayers.Bounds(-79.23381,-3.96749,-79.17630,-4.00457),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
projection: new OpenLayers.Projection("EPSG:900913"),
units: 'm',
numZoomLevels: 19,
maxResolution: 'auto'
} );
map.addLayer(new OpenLayers.Layer.OSM.Mapnik("Mapnik"));
And a function for move:
function moveFeatures(vectorLayer1){
var features = vectorLayer1.features, selectedPlane = null;
for (var i=features.length-1;i>=0;i--) {
var feature = features[i];
var poppedup = feature.attributes.poppedup;
var x = feature.geometry.x + Math.cos(15 * Math.PI / 180) / 5;
var y = feature.geometry.y + Math.sin(15 * Math.PI / 180) / 5;
if (poppedup == true) {
selectControl.unselect(feature);
}
if (vectorLayer.map.getExtent().contains(x, y)) {
var newPoint = new OpenLayers.LonLat(x, y);
feature.move(newPoint);
if (poppedup == true) {
selectControl.select(feature);
}
}
else {
vectorLayer.destroyFeatures([feature]);
feature.destroy();
feature = null;
}
}
//only for simulate moved
setTimeout(function(){moveFeatures(vectorLayer, vectorLayer.features ||
[])}, 1000);
}
I put some "alerts" in javascript for view lat and lon values, and these
change correctly... but the Marker in the map don't move !!!! please help
me....
--
Atte,
Cúmar Cueva
More information about the Dev
mailing list