Когда приложение запускается, я хочу, чтобы центр просмотра карты находился в текущей позиции пользователей. Я пробовал два разных подхода и не могу заставить их работать. Первый работал правильно в листовке, но в процессе разработки я решил использовать OL3 вместо этого.OL3: настройка центра отображения карты на geolocation.getCurrentPosition не работает
Первый подход (работал в талоне):
var myProjectionName = "EPSG:25832";
proj4.defs(myProjectionName,
"+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs");
var centerPosition;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (pos) {
centerPosition =
ol.proj.transform(
[position.coords.longitude,
position.coords.latitude],
'EPSG:4326',
myProjectionName);
},
function (err) {centerPosition = [724844,6178000];},
{
enableHighAccuracy: false,
timeout: 5000,
maximumAge: 1000
});
}
Мой второй подход с использованием класса ol.Geolocation:
var proj1 = ol.proj.get(myProjectionName);
var geolocation = new ol.Geolocation({
projection: proj1
});
var centerPosition= geolocation.getPosition();
Центральное положение используется при создании объекта Вид/карты:
var map = new ol.Map({
target: 'map',
logo : false,
layers: [ GSTGroup, OVLGroup, SheatLayer],
view: new ol.View({
projection: myProjectionName,
center: centerPosition,
resolutions : AVLresolutions,
resolution : 2
})
});
У меня есть некоторые подозрения, что причиной проблемы является проекция, но на другую r hand проекция работает правильно в трансформирующих слоях (WMTS, Vector), источник от Geojson в разных координатах и в ol.control.MousePosition.
Я использую Firefox 32.0.3 и Geolocator плагин для разработки/тестирования
Рабочий пример в http://jsfiddle.net/AndersFinn/ak4zotn8/
Это, скорее всего, быть проекцией. Вы используете UTM 32 для Южной Швеции/Норвегии, в метрах, а затем загружаете векторные данные в 4326, предположительно, и хотите использовать первый, чтобы установить центр, правильно? Если бы вы могли предоставить минимальный рабочий пример в jsfiddle, включая wms, это помогло бы. –
Привет, Джон. к сообщению добавляется рабочий пример. Спасибо за Ваш интерес. –