Клуб API Карт

Переход на новую версию карты, нужна помощь

lex-romanow
8 июля 2013, 14:42

Всем привет. Пришло время перехода на свежую и быструю версию карты. Есть некоторые трудности с реализацией. На скриншоте показано чего нужно достичь, т.е. нынешний вид карты, так и нужно сделать. Ниже приложу код старой версии. После него приложу, что я смог реализовать в новой, но в ней не совсем верно сделал, т.к. координаты ввел жестко, а нужно определять только по адресу.

 

Нынешний вид карты и как должна быть по финалу на новом скрипте:

 

 

Старый код:

 

initialize();

var map, geoResult;

function initialize(){
    map = new YMaps.Map(document.getElementById("map_content"));
    var point = new YMaps.GeoPoint(30.53, 50.40);
    map.setCenter(point, 10);
    map.setType(YMaps.MapType.MAP);
    map.addControl(new YMaps.TypeControl());
    map.addControl(new YMaps.ToolBar());
    map.addControl(new YMaps.Zoom());
    map.addControl(new YMaps.MiniMap());
    map.addControl(new YMaps.ScaleLine());
    var geocoder = new YMaps.Geocoder("Москва");
    map.addOverlay(geocoder);
    var params  = $('#box_info_company_left > div > span').html().split(',');
    var where   = params[0]+','+params[1]+','+params[2];
    var address = params[3];
    showAddress(where+','+address);
}

function showAddress(value){
    map.removeOverlay(geoResult);
   
    var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
   
    YMaps.Events.observe(geocoder, geocoder.Events.Load, function (){
        if (this.length()){
            geoResult = this.get(0);
            map.addOverlay(geoResult);
            map.setBounds(geoResult.getBounds());
        }else{
            alert("Ничего не найдено");
        }
    });
   
    YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error){
        alert("Произошла ошибка: " +error);
    });
}

 

Вот что вышло для новой версии:

function init() {
    var myMap = new ymaps.Map('map', {
            center: [47.893863,33.40521],
            zoom: 17,
            behaviors: ['default', 'scrollZoom']
        });

    var objects = ymaps.geoQuery("Украина, обл. Днепропетровская, г. Кривой Рог, Ветеранов Труда 261").addToMap(myMap);

    objects.then(function () {
        objects.get(0).balloon.open();
    });
}

ymaps.ready(init);

 

Помогите написать корректный код под новую версию. Благодарю.

0 комментариев
Подписаться на комментарии к посту