Клуб API Карт

Определение центра карты

medunytsya
3 мая 2013, 12:33

Здравствуйте! Не так давно начал использовать карты и столкнулся с проблемой.

Нужно по адресу который у меня пользователь указал, тоесть из бд, определялись координаты и центром ставала эта точка.

Смог только отдельно менять цент карты с помоцью метода setCenter(), а вот определить координаты получилось примером из документации по апа 2.х, но координаты сохранить не удается. 

Можете посоветовать в какую сторону копать? Осталось реализовать только это, в кучу связать не вышло. По отдельности и то и то работает.

3 комментария
Подписаться на комментарии к посту
1. геокодируете адрес
2. выставляете центр карты с полученными координатами

Ошибка была синтаксическая. Спасибо, разобрался.

Если кто столкнеться с такой проблемой вот решение:

 

var myGeocoder = ymaps.geocode("Киев");myGeocoder.then(function (res) {myMap.setCenter(res.geoObjects.get(0).geometry.getCoordinates(), 15);},function (err) {alert('Ошибка');});

несколько замечаний:

1. Если интересует только один результат, зачем тратить траффик пользователей? Запрашивайте только один результат:

ymaps.geocode("Киев") -> ymaps.geocode("Киев", { results: 1 })


2. Геокодер может и не найти ничего. Нужно проверять, что результат есть:

var geoObject = res.geoObjects.get(0);

if(geoObject) {

    ...

}

3. Лучше не хардкодить какой-то масштаб (15), а масштабировать карту, используя область видимости объекта. Т.к. масштаб с которым надо показать город и, например, улицу будут разные.


Итого:

 

var myGeocoder = ymaps.geocode("Киев", {    results: 1});myGeocoder.then(function (res) {    var geoObject = res.geoObjects.get(0);
    if (geoObject) {        myMap.setBounds(geoObject.properties.get('boundedBy'));    } else {        alert('Не найдено');    }}, function (err) {    alert('Ошибка');});