ZoomToExtent OpenLayers 3

OpenLayers 2 имаше много полезна map.zoomToExtent(extent) функция. Има ли нещо подобно в OpenLayers 3? Мога да получа степента на интерес с source.getExtent(), но не мога да разбера как да приложа тази степен като „ниво на увеличение“.


person Tyler DeWitt    schedule 15.05.2014    source източник
comment
пробвал ли си ol3js.org/en/master/apidoc/ol.control .ZoomToExtent.html   -  person sfletche    schedule 15.05.2014
comment
@sfletche Това се оказа правилният отговор. Ако искате да промените коментара си в отговор, ще го избера, за да можете да получите страхотни интернет точки.   -  person Tyler DeWitt    schedule 16.05.2014


Отговори (3)


Излизане от функцията sfletche, свързана с:

var extent = source.getExtent();
map.getView().fitExtent(extent, map.getSize());

РЕДАКТИРАНЕ на 23 юли 2013 г.

Очевидно fitExtent е отхвърлен. Трябва да бъде ol.View.fit, така че нещо свързва това (нетествано):

var extent = source.getExtent();
map.getView().fit(extent, map.getSize()); 
person Tyler DeWitt    schedule 16.05.2014
comment
благодаря за кредита @tylerdewitt. Бях твърде бавен, за да отговоря, така че вместо това ще ви дам няколко интернет точки. :) - person sfletche; 17.05.2014
comment
fitExtent() на View изглежда е остарял в 3.4 - person user1702401; 15.04.2015
comment
Той е заменен с ol.View.fit в 3.7. - person 0xcaff; 23.07.2015
comment
map.getSize() не е задължителен, това е стойността по подразбиране. - person Toilal; 15.06.2017
comment
Здрасти. Опитвам се с this.olmap.getView().fit(ext, size, [0, 0, 0, 0], true, false, 0, 15, 2000); да направя увеличението плавно и анимирано. И все още не е плавен или анимиран. Някакви идеи? Благодаря (това е OL5) - person slevin; 04.08.2018
comment
@slevin знам, че това е старо, но вероятно ще ви трябва view.animate() с пример на openlayers.org/en/latest/examples/animation.html и документи на openlayers.org/en/latest/apidoc/ - person Andrew T; 08.02.2019

С OpenLayers 4.x това все още е валидно решение:

map.getView().fit(source.getExtent(), map.getSize()); 

Уверете се, че сте задали незадължителния втори параметър, за да предотвратите грешки в конзолата, ако няма точки на картата.

person Naderio    schedule 02.02.2018

С OpenLayers 4.x намерих следните методи за полезни:

map.getView().setCenter([x, y]); map.getView().setZoom(z);

където x, y, z са координатите, до които искате да увеличите.

person juminet    schedule 12.10.2018