Я только начал смотреть на OpenLayers 3 и пытаюсь увеличить масштаб до одной функции, размер которой должен быть объектом geoJSON, отправленным сервером (который будет меняться при каждом обновлении, поэтому я не могу жестко закодировать масштаб/ центральная точка). Я бы хотел, чтобы это произошло, как только страница загрузится, но я изо всех сил пытаюсь заставить ее работать.
Я продолжаю получать сообщение об ошибке «Uncaught TypeError: undefined is not a function» в строке, где я пытаюсь прочитать геометрию из объекта geoJSON, и я не совсем уверен, как это исправить. Строка geoJSON выглядит нормально (я также пытался проанализировать ее перед передачей в readGeometry, но это дало те же результаты).
Если есть более простой/быстрый способ сделать это, чем я сейчас, мне было бы интересно это услышать! Любая помощь приветствуется.
var feature = new ol.Feature({
});
var view = new ol.View({
center: [0, 0],
zoom: 1
});
var client = new XMLHttpRequest();
client.open('GET', 'http://localhost:3000/extent');
client.send();
client.onreadystatechange=function(){
if (client.readyState==4 && client.status==200){
var geomstring = client.responseText;
console.log(geomstring)
var geojson = new ol.format.GeoJSON();
var geom = geojson.readGeometry(geomstring);
var size = (map.getSize());
feature.setGeometry(geom);
view.fitGeometry(
geom,
size,
{
padding: [170, 50, 30, 150],
constrainResolution: false
});
}
}
var map = new ol.Map({
layers: [raster, vector, feature],
target: 'map',
});
readFeature()
вместоreadGeometry()
, но это зависит от того, что возвращает ваш веб-сервис. - person tsauerwein   schedule 28.07.2014