Клуб API Карт

осваивая setBounds()

Пост в архиве.

помогите разобраться - как Правильно?

задача - отобразить карту с актуальным центром и масштабом

сооружаем

 var p1 = new YMaps.GeoPoint(MapSumm[0],MapSumm[2]) ;
 var p2 = new YMaps.GeoPoint(MapSumm[1],MapSumm[3]) ;
 var bo = new YMaps.GeoBounds( p1, p2 );
      map.setBounds( bo );

Pm_t1 = new YMaps.Placemark( p1 );

Pm_t2 = new YMaps.Placemark( p2 );
map.addOverlay(Pm_t1);  map.addOverlay(Pm_t2);      

хм.. как-то криво получается

 http://walks.ru/new/index.html#stdt/moscow;mtr0_00 

кнопка [map] - сверху, справа

а если карту лапкой потаскать в "окошке" направо/налево" - то становится чудесатее :(


смотрим пример http://api.yandex.ru/maps/jsapi/doc/ref/reference/geobounds.xml

... var bound = YMaps.GeoBounds.fro...
исправляем
 var bo = YMaps.GeoBounds( p1, p2 );
получаем:

R is undefined http://api-maps.yandex.ru/1.1.1/YMaps.js Line 11
init()()YMaps.js (line 11)
temaMaps()(["37.62", "55.75", "12" 0=37.62 1=55.75 2=12], -1)album_aj...maps_e.js (line 45)
doMaps(-1)album_aj...maps_e.js (line 18)
onclick(click clientX=786, clientY=17)95QO61NF...jPw%3D%3D (line 2)

(function(G){(function(){var b=this,W,l=...K(G.WayPoint,G.GeocoderResult)})(YMaps);

упс... кажется уа усе сломал :(

4 комментария
Что-то мне подсказывает что вы скриптом выставляете размер карте, причем уже после ее инициализации. Для отработки данного случая у карты есть специальный метод:http://api.yandex.ru/maps/jsapi/doc/ref/reference/map.xml#redraw
Трошин Алексей
28 января 2016, 08:31
вообще-то Так оно и есть..
при первой же возможности я создаю карту, а потом, в зависимости от потребностей посетителя показываю ему то, что он хочет, соответственно меняется и центр с масштабом
примеры тут http://www.walks.ru/new/

там где есть справа сверху кнопка [map] - её можно давить :)
На сколько я могу видеть сейчас вы дважды создаете карту в одном диве. Поэтому получается наложение элементов управления. А на счет метода redraw, вызывайте его каждый раз после изменения размера дива с картой.
Трошин Алексей
28 января 2016, 08:31
повторное создание карты истреблено физически! (забыл про него) - Спасибо!

map.redraw(); - понаставил повсюду - стало Лучше - Спасибо!