Quantcast
Channel: Клуб API Карт
Viewing all 7380 articles
Browse latest View live

Переключение ссылки 2.1


Плавающий баннер на карте.

$
0
0

Хотим сделать плавающий баннер на карте с привязкой к кординате. Когда координата, к которой привязан баннер выходит за границы видимости на экране, можно ли сделать, чтобы баннер был виден, и в зависимости от передвижения карты баннер тоже смещался ближе к координате, но оставался в зоне видимости экрана постоянно.

Метка в виде диаграммы...

$
0
0
myPieChart = new ymaps.Placemark([
            55.847, 37.6
        ], {
            // Данные для построения диаграммы.
            data: [
                {weight: 8, color: '#0E4779'},
                {weight: 6, color: '#1E98FF'},
                {weight: 4, color: '#82CDFF'}
            ],
            iconCaption: "Диаграмма"
        }, {
            // Зададим произвольный макет метки.
            iconLayout: 'default#pieChart',
            // Радиус диаграммы в пикселях.
            iconPieChartRadius: 30,
            // Радиус центральной части макета.
            iconPieChartCoreRadius: 10,
            // Стиль заливки центральной части.
            iconPieChartCoreFillStyle: '#000000',
            // Cтиль линий-разделителей секторов и внешней обводки диаграммы.
            iconPieChartStrokeStyle: '#000000',
            // Ширина линий-разделителей секторов и внешней обводки диаграммы.
            iconPieChartStrokeWidth: 3,
            // Максимальная ширина подписи метки.
            iconPieChartCaptionMaxWidth: 200
        });

Пример из песочницы, задумка 5, все шикарно, но как указать стиль текста в центре, просто если указать цвет границ и цвет фона центра #000000 то ясно дело черный текст плохо видно на черном фоне))

и  в доках ничего не нашел по этому поводу...

Как отфильтровать объекты по координатам?

$
0
0

Вопрос, наверное, очень глупый, но вот не понимаю как его решить…
Как найти объекты на карде по координатам?

result = ymaps.geoQuery(objects)
          .setOptions('preset', 'islands#redDotIcon')
          .setOptions('visible', false)
          .setOptions('iconColor', '#40BC86')
          .addToMap(myMap);

Вот добавил я объекты, скрыл их сразу и потом хочу показать только определенные. 

Что-то типа того: 

result.searchCoordinate(arCoordinate).setOptions('visible', true);

arCoordinate — массив объектов с координатами. 

Я взял координаты как вариант, если можно поискать по какому-то ID, то еще лучше. 
 

При выделении пункта в списке, изменить цвет иконки на карте

$
0
0

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

Выглядит это так:

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

Вот текущий код:

$('#checkout-delivery-to-terminal input').on('ifChecked',function(){
        $('#checkout-delivery-to-terminal-terminal-tk').val($(this).closest('.terminal').attr('data-terminal-type'));

        var objectId = $(this).val();

        terminalsManager.objects.each(function(object){
          if(object.id == objectId){
            if(!checked_by_map){
              terminalsMap.setCenter(object.geometry.coordinates, 15);
            }else{
              checked_by_map = false;
            }
            terminalsManager.objects.setObjectOptions(object.id, {
              preset: 'islands#greenDotIcon'
            });
          }else{
            terminalsManager.objects.setObjectOptions(object.id, {
              preset: 'islands#blueIcon'
            });
          }
        });
      });
    });

Как выделить кластер? И может можете предложить вариант поэлегантнее?

Получение координат из JSON и отображение их как коллекции объектов. Нужна помощь!

$
0
0

Добрый день. Необходима помощь. Пытаюсь получить координаты из JSON и вывести их на карте как коллекцию объектов.

Данные получаю, в консоли выводится, а карта не хочет их отображать.

Вот код: 

var items = [];
	console.log("JSON start...")
	jQuery.getJSON( url, function( json ) {
		jQuery.each(json.posts, function(key, index) {
			loc = index.custom_fields.map_coords[0];
			items.push(loc);
		});
	})
	.done(function() {
		console.log("JSON received... Start YMaps")
		ymaps.ready(init);
		function init() {
			var myMap = new ymaps.Map("map", {
				center: [54.738307, 55.945710],
				zoom: 13
			}),
			addresses = new ymaps.GeoObjectCollection(null, {
				preset: 'islands#yellowIcon'
			});
			console.log('1st elem: ' + items[0] + "\nArray length: " + items.length);
			for (var i = 0, l = items.length; i < l; i++) {
				addresses.add(new ymaps.Placemark(items[i]));
			}

			myMap.geoObjects.add(addresses);
		}
	})
	.fail(function() {
		console.log( "error" );
	});

Получаю ошибку, Cannot read property 'then' of null. Я так понял массив координат ему не нравится. Хотя в консоли всё нормально отображается.

В чём может быть проблема?

Прямое и Обратное геокодирование в одном скрипте

$
0
0

Доброго времени суток!
Не так давно начал изучать API Яндекс Карт, потому столкнулся с такой, казалось бы НЕ, проблемой, над которой бъюсь уже не первый день.
Необходимо реализовать карту, на которой через поиск можно было находить объект (с выподающими подсказками, способными править неправильный запрос и приводить его в "преглядный" яндексовский вид), в результате поиска которого на карте устанавливался бы маркер, который в последствии можно было бы перемещать.
И вроде почти все получилось, вот только маркер результата поиска и маркер "перемещения" получаются разными и быть одним целым никак не хотят...
Пример кода можно посмотреть тут. Очень надеюсь хоть на чью то помощь.
Заранее спасибо!

Окна в JS

$
0
0

Добрый день! Написал код,но полседняя его стадия не работает. Мой проект:

<!DOCTYPE html>
<html>
    <head>
        <title>Map</title>
        <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
        <script src="http://yandex.st/jquery/2.2.3/jquery.min.js" type="text/javascript"></script>
        
        <link href="http://yandex.st/bootstrap/2.2.2/css/bootstrap.min.css" rel="stylesheet"> 
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>    
    </head>
    <body>
        <div id="map"></div>
        <style>
            html, body,#map {                
                width: 100%;
                height: 100%;
                padding: 0;
                margin: 0;
            }
            #my-listbox {
                top: auto;
                left: auto;
            }
            *{
    font-family: Areal;
}
.b-container{
    width:200px;
    height:150px;
    background-color: #ccc;
    margin:0px auto;
    padding:10px;
    font-size:30px;
    color: #fff;
}
.b-popup{
    width:100%;
    min-height:100%;
    background-color: rgba(0,0,0,0.5);
    overflow:hidden;
    position:fixed;
    top:0px;
}
.b-popup .b-popup-content{
    margin:40px auto 0px auto;
    width:100px;
    height: 40px;
    padding:10px;
    background-color: #c5c5c5;
    border-radius:5px;
    box-shadow: 0px 0px 10px #000;
}
        </style>        
        <script>
            ymaps.ready(function () {
    var myMap = new ymaps.Map('map', {
        center: [55.733835, 37.588227],
        zoom: 12,
        controls: []
    });

    var myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
        balloonContentBody: [
            '<div class="b-container">',
            '<a href="javascript:PopUpShow()">Press here</a>',
            '</div>',
            '<div class="b-popup" id="popup1">',
            '<div class="b-popup-content">',
                'Text in Popup',
                '<a href="javascript:PopUpHide()">Hide popup</a>',
            '</div>',
        '</div>'
        ].join('')      
    }, {
        preset: 'islands#redDotIcon'
    });

    myMap.geoObjects.add(myPlacemark);
});
$(document).ready(function(){
        //Скрыть PopUp при загрузке страницы    
        PopUpHide();
    });
    //Функция отображения PopUp
    function PopUpShow(){
        $("#popup1").show();
    }
    //Функция скрытия PopUp
    function PopUpHide(){
        $("#popup1").hide();
    }

        </script>
    </body>
</html>

Получение превью и фото панорамы для сайта

$
0
0

Добрый день! Можно ли по запросу (в котором адрес либо координаты) получить изображения которые показывает яндекс (как на картинке), изображения дома и улицы?

Как убрать метки больниц, банкоматов и других объектов с карты?

$
0
0

Доброго времени суток.
Натолкнулся на странную фичу карт - отображение организаций в виде иконок (прогружаются вместе с картой - вручную не вызываю).
Не могу понять как их отключить.
В документации сказано про параметр "yandexMapDisablePoiInteractivity", но он отключает только интерактивность (событие при клике).
А как сам значек и надпись убрать?

Клиент жалуется - очень сильно не хочет, чтобы конкуренты отображались на его сайте.
Подскажите пожалуйста - как решить данную проблему?

Код подключения карты:

map = new ymaps.Map("map",
 {

   center: coordinates,

   zoom: 7,

   controls: ["zoomControl","fullscreenControl"]

 },
 {

   suppressObsoleteBrowserNotifier:true,

   yandexMapDisablePoiInteractivity: true,

   suppressMapOpenBlock: true

 }
);


map.behaviors.disable('scrollZoom');

Построение маршрутов только внутри России

$
0
0

Здравствуйте!

Подскажите пожалуйста , возможно ли построить маршрут по двум точкам (без указания промежуточной) из Омска в Челябинск, так чтобы маршрут объесжал казахстан.

Разработка собственного меню (рисование полигона)

$
0
0

Добрый день ! 

Уважаемые участники , может кто-то вменяемо рассказать или показать на примерах , каким образом можно разработать собственное меню (ymaps editor vertex)?

В стандартном , подгружаемом с ymaps , при клике по вершине построенного полигона есть пункты :"Удалить", "Завершить редактирование", "Добавить внутренний контур"...

Как сделать собственное меню , допустим , чтоб там было только два первых пункта или только удалить.

Перелопатил уже кучу материала , но толком разобраться так и не смог !

Использую API 2.1.

За ранее спасибо за ответы !

Перестала отображаться карта с кластером меток

$
0
0

Перестала отображаться карта с кластерами меток, просто серый квадрат.

Работало нормально до последнего дня. Отображало метки, группировало в кластеры.

адрес траницы https://skidkaufa.ru/map.html

консоль не отображает ни одной ошибки, соседние страницы отображают карту с одной меткой нормально.

Пример:

https://skidkaufa.ru/kupon/akciya-smeshnye-ceny-ot-sanatoriya-yumatovo-skidka-20-na-vse-putevki-ot-14-dnej.html

Никак не могу понять что мешает отображению.

Подскажите куда копать?

Добавление GeoQueryResult в ObjectManager

$
0
0

Можно ли как-то GeoQueryResult, полученный в результате myObjects.search(***), добавить в ObjectManager? Почти весь функционал построен на ObjectManager, и теперь не могу из-за этого седлать элементарные выборки по объектам на карте.

Если такое невозможно, можете хотябы подсказать, как удалить объекты (например маркеры) после того, как они были добавлены на карту?

function searchFunc()
{
var res =  new ymaps.GeoQueryResult();
window.myObjects = ymaps.geoQuery(myPlacemark);
//myPlacemark - строка с json-описаниями геометрии

res = myObjects.search('options.preset = "islands#greenDotIcon"');

/*
Здесь нужно как-то удалять то, что было добавлено на карту в результате предыдущего выполнения функции searchFunc().
*/

res.addToMap(myMap);
}

Автопостроение маршрута

$
0
0

Добрый день уважаемые профессионалы!

Возникла такая проблема. Есть готовое решение построения маршрута от текущего местоположения пользователя до необходимой точки: https://tech.yandex.ru/maps/jsbox/2.1/routes_to_point

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

А необходимо чтобы он строился автоматически при загрузке страницы (вариант "На автомобиле").

Как я только не бился, не получается это сделать. Подскажите пожалуйста, как реализовать? Заранее большое спасибо!


Поиск организаций на карте

$
0
0

Здравствуйте,

Необходимо на карте отобразить в городе (определяется по геоданным посетителя)  ближайшие организации(например аптеки), но только определенных фирм.

Как это лучше всего сделать, подскажите пожалуйста? Пытаюсь как в примере ниже, но там нельзя ограничить поиск по определенным организациям.

Спасибо!

ymaps.ready(init);
function init(ymaps) {
    ym = ymaps;
    myMap = new ym.Map('ppoapi', {
        center: [50.45050151, 30.51993271],
        zoom: 16,
        controls: ['searchControl',  'fullscreenControl']
    });
    
    searchControl = myMap.controls.get('searchControl');
    
    searchControl.options.set('provider', 'yandex#search');
    
  myMap.controls.add(searchControl);
    
    
    //searchControl.search('Санкт-Петербург РИГЛА; Санкт-Петербург Аптека 36.6');
    searchControl.search('Санкт-Петербург Аптека').then(function () {
    var geoObjectsArray = searchControl.getResultsArray();
    if (geoObjectsArray.length) {
       
        console.log(geoObjectsArray[0].properties.get('name'));
    }
});
   
}

Список городов в маршруте

$
0
0

Предположим имееется маршрут из точки А в точку Б, требуется получить список городов попадающих в этот маршрут. Как это можно реализовать?

Boundschange срабатывает дважды

$
0
0

При изменении границ карты опрашиваю сервер, который возвращает набор точек (до 300) с координатами, которые входят в эту область. При клике по кластеру происходит приближение карты и дважды срабатывает событие boundschange, в связи с чем точки/кластеры повторно перестраиваются и происходит заметные «прыжки» меток на карте.  Если использовать zoom-контролы, то событие срабатывает один раз. Использование debounce для колбека на boundschange не помогает. Как решить эту проблему?

internal server error при расчете марштура

$
0
0

есть такая страничка  http://interesnayamoskva.ru/mapsAndTans/maps.php 

раньше при расчете автомобильного маршрута все работало

потом год не заходил  на сайт   а теперь при нажатии кнопки найти  выдает internal server error

можете подсказать что надо правитть

Включить редактор для объекта загруженного через LoadingObjectManager

$
0
0

Здравствуйте. Имею загрузку объектов на карту:

	loadingObjectManager = new ymaps.LoadingObjectManager('geo.php?bbox=%b',
      {
        // Включаем кластеризацию.
        clusterize: false,
        // Опции кластеров задаются с префиксом cluster.
        clusterHasBalloon: false,
        // Опции объектов задаются с префиксом geoObject
        geoObjectOpenBalloonOnClick: false
      });

	myMap.geoObjects.add(loadingObjectManager);

Как по событию - клику, включить редактирование?

Событие запускаю так:

	loadingObjectManager.objects.events.add('click', function (e) {
***
	});

Viewing all 7380 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>