Проблема с выводом вектора?

Помогите с проблемкой, как привязать вектор к Open Street Map
Вот код:


<html>
<head>
  <title>OpenLayers Example</title>
    <script src="http://openlayers.org/api/OpenLayers.js"></script>
    <script src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=euzuro-openlayers"></script>
       <script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script> 
    </head>
    <body>
      <div style="width:100%; height:100%" id="map"></div>
      <script defer="defer" type="text/javascript">
        var map = new OpenLayers.Map('map');
        
        layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
                "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
            map.addLayer(layer);
        
    yahooLayer = new OpenLayers.Layer.Yahoo( "Yahoo");
    map.addLayer(yahooLayer);
            
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),
 {some:'data'},
 {externalGraphic: 'tram.png', graphicHeight: 21, graphicWidth: 16});
vectorLayer.addFeatures([feature]);

map.addLayer(vectorLayer);    
    
      </script>

</body>
</html>

Дак вы если центру карты делаете .transform() то и точке которую добавляете - сделайте тоже.

А примерчик можно? :slight_smile:

А, всё, dkiselev спасибо большое за подсказку :slight_smile:

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: 21, graphicWidth: 16});
vectorLayer.addFeatures([feature]);

А можно еще вопросик :slight_smile:
А как привязать теперь к картам Yahoo

Про яху не знаю.

Еще вопросик по вектору :slight_smile: я для перерисовки маркера использовал конструкцию

var newPx = map.getLayerPxFromViewPortPx(map.getPixelFromLonLat(new OpenLayers.LonLat(lon, lat).transform(map.displayProjection, map.projection)));
marker.moveTo(newPx);

А как перерисовывать вектора? Особенно как перерисовать угол отображения вектора (rotation)

Попробуйте так

var lonlat = new OpenLayers.LonLat(lon, lat).transform(map.displayProjection, map.projection)
feature.geometry.x = lonlat.lon;
feature.geometry.y = lonlat.lat;
layer.redrawFeature(feature, )

Если ротейшен это шняжка для поворота картинки - то feature.style.rotation = newVal ну и дальше. Вроде как то так крутил