Клуб API Карт

не получается выставить ширину поиска

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

Привет всем. Пытался установить ширину поиска , но ничего не вышло вот как яделал

   var myMap = new ymaps.Map("map", {
                    center: [ymaps.geolocation.latitude, ymaps.geolocation.longitude],
                    zoom: 13
                }, {
                    balloonMaxWidth: 400
                }),searchControl = new ym.control.SearchControl({ width: '300' });

так карта загружается но нет ни одного инструмента, что я сделал не так. Зарание большое спасибо

16 комментариев

1. Ошибка в неймспейсе где-то ymaps где-то ym

2. Опция имеет тип integer, а не string

widthIntegerШирина элемента (в пикселах). Минимальное значение: 200.

Значение по умолчанию: 240

 

ни так  searchControl = new ymaps.control.SearchControl({ width: 400 })

ни так searchControl = new ym.control.SearchControl({ width: 400 }) не работает:-(

приведите весь код

.add('searchControl', { left: '200px', top: '10px'})

тут в вашем случае должна быть ссылка на контрол, а не ключ (уберите кавычки)

.add(searchControl, { left: '200px', top: '10px'})


Но падает не из-за этого.

загляните в javascript-консоль firebug-а

Мы публиковали в блоге пару статей про поиск ошибок.

Убрал кавычки и все ок:-Oможет Вы мне подскажете как мне сделать только одну метку на карту для пользователя. У меня от карты требуются только кардинаты, как мне сделать, если пользователь передумал и щелкнул в другое место предыдущая метка пропала чисто на js у меня все равно на php учитывается только последняя метка. Зарание большое спасибо

Рекомендую передвигать существующую метку вместо создания новой и удаления старой

myPlacemark.geometry.setCoordinates(_новые координаты_);

Чтоб я знал как это делать как я понял у меня добыавляется метка вот так

myMap.geoObjects.add(myPlacemark);  

  то что Вы предлагаете - надо на карте уже расположить метку и ее передвигать, так что ли?

ну да

метка у тебя уже добавлена (один раз)

при следующих кликах передвигай ее и всё

Так она добавляется только когда ползователь щелкнет по умалчанию там ничего нет

ну и отлично,

в обработчике клика у тебя должна быть одна проверка 

if(метка создана) {

    передвинуть метку

} else {

    создать метку

}

может поможете, а то я не знаю откуда какие переменные брать c js мало практики

покажите код создания метки

я поправлю

//Отслеживаем событие клик левой кнопкой мыши на карте   
            myMap.events.add('click', function (e) {
                if (!myMap.balloon.isOpen()) {
                    var coords = e.get('coordPosition');
                    myMap.balloon.open(coords, {                       
                        contentBody: '\
                             \
                         Выбрать это месторасположение\
                         '});
                         
                var myPlacemark = new ymaps.Placemark(coords);
               
                 
                   
   
                 $('#menu button[type="submit"]').click(function () {
                        var
                            stylePlacemark = 'twirl#blueIcon';   
                   
                    //Передаем параметры метки скрипту addmetki.php для записи в базу данных
                    $("#res").load("http://stail.ru/skins/tpl/order/addmetki.php", {lat : coords[0].toPrecision(6), lon : coords[1].toPrecision(6)});
                   
                    //Добавляем метку на карту       
                    myMap.geoObjects.add(myPlacemark);       

                       
                        //Устанавливаем стиль значка метки
                        myPlacemark.options.set({
                            preset: stylePlacemark
                         });       
                       
                        //Закрываем балун
                        myMap.balloon.close();
                    });         
                         
                   
                } else {
                    myMap.balloon.close();
                }
            });

, я выложил тебе пример,

Хочу обратить твое внимание что если ты навешиваешь обработчики клика, то у тебя должен быть код, осуществляющий снятие этого обработчика,

иначе в броузере пользователя при каждом открытии балуна будет утекать память.

огромное спасибо.