Страница 1 из 1
OpenLayers - плавная прорисовка tile
Добавлено: 18 авг 2010, 11:42
Olax
Подскажите есть ли в опенлаер такая функция перерисовки тилов как в гугле при зуме?
т.е. при изменения зума тиле не пропадает а "растягивается" или "сжимается" и заменяется только тогда кода подгружен новый тиле.
Интересная фишка. Подскажите.
Re: OpenLayers - плавная прорисовка tile
Добавлено: 18 авг 2010, 14:05
Konstantin Tokar
Есть, была добавлена давольно давно, но не помню как включается.
вот как:
http://dev.openlayers.org/releases/Open ... ition.html
выбирайте слои с включённым эффектом под плюсиком.
Re: OpenLayers - плавная прорисовка tile
Добавлено: 18 авг 2010, 18:02
kosyag
раз:
http://dev.openlayers.org/docs/files/Op ... tionEffect (сохранение старого тайла до прорисовки нового - ссылка на документацию)
два:
http://dev.openlayers.org/sandbox/emanu ... /demo.html (анимированный зум - демо)
Re: OpenLayers - плавная прорисовка tile
Добавлено: 18 авг 2010, 19:38
Olax
Спасибо, анимация больше понравилась. так сказать плавный ресизинг

)
Re: OpenLayers - плавная прорисовка tile
Добавлено: 20 авг 2010, 17:16
dobeer
Вставил в описание слоя
вот так:
Код: Выделить всё
wms = new OpenLayers.Layer.WMS("Просто слой",
"http://*******************************",{transparent: 'true', layers: 'area,zastroyka,asfalt3,veget,voda,linesW,lines,Street,asfalt,asfalt2,haus,poi,poibig', format: 'png', minZoomLevel:4, maxZoomLevel:17}, {layers: 'basic'}, {transitionEffect: 'resize'});
но эффект не происходит при зуминге, правильно ли я понял, что необходимо просто добавить параметр
или еще что то нужно?
Re: OpenLayers - плавная прорисовка tile
Добавлено: 20 авг 2010, 21:34
Konstantin Tokar
Нужно прочитать документацию. У Вас лишний хэш в параметрах, {layers: 'basic'}, надо удалять.
OpenLayers. Layer.WMS
Create a new WMS layer object
Example
var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
"
http://wms.jpl.nasa.gov/wms.cgi",
{layers: "modis,global_mosaic"});
Parameters
name {String} A name for the layer
url {String} Base url for the WMS (e.g.
http://wms.jpl.nasa.gov/wms.cgi)
params {Object} An object with key/value pairs representing the GetMap query string parameters and parameter values.
options {Ojbect} Hashtable of extra options to tag onto the layer
Re: OpenLayers - плавная прорисовка tile
Добавлено: 21 авг 2010, 07:31
dobeer
В примере по первой ссылке слой с эффектом плавного зума определяется как:
Код: Выделить всё
var tiled_resize_effect = new OpenLayers.Layer.WMS(
"WMS tiled resize",
"http://labs.metacarta.com/wms/vmap0?",
{layers: 'basic'},
{transitionEffect: 'resize'}
лишь указывает, что слой является основным, как он может быть лишним? Да и без этого параметра ничего не меняется...
Может в WMS необходимо что то указать, чтоб этот эффект работал?
Re: OpenLayers - плавная прорисовка tile
Добавлено: 21 авг 2010, 07:44
dobeer
Сори, все заработало...когда вы говорили про лишний хеш, я не сразу понял что вы имели ввиду))...имелось ввиду не параметр лишний, а то что в определении слоя всего 4 блока должно быть, у меня же их получилось 5.
Re: OpenLayers - плавная прорисовка tile
Добавлено: 21 авг 2010, 12:52
Konstantin Tokar
dobeer писал(а):Сори, все заработало...когда вы говорили про лишний хеш, я не сразу понял что вы имели ввиду))...имелось ввиду не параметр лишний, а то что в определении слоя всего 4 блока должно быть, у меня же их получилось 5.

имелось ввиду именно то что я сказал. Я перловик, поэтому {...} машинально называю хэшами, наверно надо в JS их ассоциативными массивами называть. Кстати, эта Ваша ошибка с параметрами , мне кажется, для Openlayers очень характерна, сам на неё постоянно натыкался.