Точка OpenStreetMap не отображается на карте с открытыми слоями - PullRequest
1 голос
/ 27 ноября 2011
var map;
var vectors;
var point;
var drag;

Можно использовать любой длинный и лат

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()
            );

Присвойте лат длинную точку

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 ]

1 голос
/ 28 ноября 2011

Вы смотрите на полную карту?Есть большая вероятность, что вы устанавливаете местоположение точки как широта / долгота.Объект OpenLayers LonLat назван так только для того, чтобы обмануть таких невинных пользователей, как вы, в том, что он автоматически преобразует долготу широты или ожидает их, или что-то в этом роде.Не верьте этому, перепроектируйте в проекцию вашей карты.

0 голосов
/ 26 апреля 2012

Я думал, что Сбор был необходим, но похоже, что вы поменялись местами.Точка должна иметь lon, затем lat.

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