OpenStreetMap点未在打开图层的地图上显示

时间:2011-11-27 12:43:36

标签: javascript openlayers openstreetmap

var map;
var vectors;
var point;
var drag;

任何长和Lat都可以使用

function mapCreate(lon,lat){
            map = new OpenLayers.Map("map1");
            var osm = new OpenLayers.Layer.OSM();
            //create a vector
            vectors = new OpenLayers.Layer.Vector("Vector Layer");
            map.addLayer(osm);
            var center = new OpenLayers.LonLat(lon,lat).transform(
                new OpenLayers.Projection("EPSG:4326"),
                map.getProjectionObject()
            );

将lat long指定为

point = new OpenLayers.Geometry.Point(lat,lon);

向矢量添加点

        vectors.addFeatures([new OpenLayers.Feature.Vector(point)]);

        map.setCenter(center, 15);
        //add vectors to map
        map.addLayer(vectors);

    }

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

你在看完整的地图吗?您将点的位置设置为纬度/经度的可能性很高。 OpenLayers LonLat对象的命名只是为了让像你这样无辜的用户认为它会自动转换纬度经度,或者期望它们或其他东西。不要相信它,重新投影到地图的投影中。

答案 1 :(得分:0)

我认为收藏是必要的,但看起来你有拉特& amp;互换了。一个点必须有lon,然后是lat。

feature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Collection([new OpenLayers.Geometry.Point(0, 0)]), {});
vectors.addFeatures([feature]);