Перерисовка вектора (изменение его координат и угла)
Добавлено: 24 окт 2011, 03:13
Привет всем, как перерисовывать вектор. Маркер перерисовываю с помощью moveto, а как быть с вектором, чтобы можно было изменить и угол и координаты. Вот попытался что-то написать, но не работает.
Код: Выделить всё
<html>
<head>
<title>OpenLayers Exampl6e</title>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>
<script defer="defer" type="text/javascript">
function init()
{
var map = new OpenLayers.Map('map');
layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {layers: 'basic'});
map.addLayer(layerMapnik);
layerTilesAtHome = new OpenLayers.Layer.OSM.Osmarender("Osmarender");
map.addLayer(layerTilesAtHome);
layerCycleMap = new OpenLayers.Layer.OSM.CycleMap("CycleMap");
map.addLayer(layerCycleMap);
map.setCenter(new OpenLayers.LonLat(104,52) // Центр карты
.transform(
new OpenLayers.Projection("EPSG:4326"), // преобразование из WGS 1984
new OpenLayers.Projection("EPSG:900913") // в Spherical Mercator Projection
), 12 // Уровень масштаба
);
map.addControl(new OpenLayers.Control.LayerSwitcher());
var vectorLayer = new OpenLayers.Layer.Vector("Overlay");
var feature = new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(104, 52).transform(
new OpenLayers.Projection("EPSG:4326"), // преобразование из WGS 1984
new OpenLayers.Projection("EPSG:900913")) // в Spherical Mercator Projection
,
{some:'data'},
{externalGraphic: 'tram.png', graphicHeight: 50, graphicWidth: 50, rotation: 90});
vectorLayer.addFeatures([feature]);
map.addLayer(vectorLayer);
new_vector();
}
</script>
<script type="text/javascript">
function new_vector()
{
var lon = 0;
var lat = 0;
var newPoint = new OpenLayers.LonLat(lon, lat).transform(
new OpenLayers.Projection("EPSG:4326"),
new OpenLayers.Projection("EPSG:900913"));
feature.geometry.x = lonlat.lon;
feature.geometry.y = lonlat.lat;
feature.style.rotation = 45;
// vectorLayer.redraw(feature);
vectorLayer.drawFeture(feature);
vectorLayer.redraw();
}
</script>
</head>
<body onload = 'init()'>
<div style="width:600px; height:600px" id="map"></div>
</body>
</html>