Клуб API Карт

октябрь 2010
Фильтрация / Группировка маркеров
dotzero
1 октября 2010, 16:31

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

Суть проблемы в следующем, я имею определенный набор меток магазинов (100-200) + необходимость реализовать фильтрацию их отображения на карте (магазин может иметь банкомат, терминал, и т.д). Фильтр это набор чекбоксов и мне необходимо отобразить на карте только те объекты которые подходят под все выделенный в фильтре свойства (к примеру только те магазина в который есть и банкомат и терминал).

Отсюда вытекает пара вопросов:

1. Есть ли какая-то возможность присвоить меткам свои свойства для фильтрации.

2. Если я сделаю под каждый фильтр группу объектов и буду накладывать друг на друга, то в тех местах где один объект имеет много свойств объекты будут накладываться друг на друга и это решение совсем в лоб.

Может быть кто-то сталкивался с подобной задачей или знает на каком сайте релизован подобный механизм работы.

1 комментарий
API 1.x
Не удаляется оверлей, загруженный через YMaps.YMapsML
boyarkov
2 октября 2010, 10:04

Пациент: http://map.informproject.com.

Оверлеи грузятся по нажатию на ссылку слева от карты. Загружаю XML и добавляю оверлей через map.addOverlay(ml).По второму нажатию оверлей должен удаляться, чего не происходит. map.removeOverlay(ml) не срабатывает. Хотя если использовать map.removeAllOverlays(), оверлеи пропадают.

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

2 комментария
API 1.x
Направленная ломаная
rub-dima
2 октября 2010, 22:27
Можно ли станлартными средствами добавить на карту ломаную со стрелкой, чтобы обозначить направление проезда?
5 комментариев
API 1.x
Добавить в Значок Метки содержимое, если код получен из Конструктора
Pavel
3 октября 2010, 03:11

Добрый день!

Есть код карты, полученный из конструктора:

 <!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту  (начало) -->
<script

src="http://api-maps.yandex.ru/1.1/?key=AJy1_0sBAAAAIS-nUgMAckINubwyWqYTlnSBJIdOQz-8QnIAAAAAAAAAAAAj5aSl2iD6NZGGYamP7bErB-ZbQ==&wizard=constructor"
type="text/javascript"></script>
<script type="text/javascript">
    YMaps.jQuery(window).load(function () {
        var map = new YMaps.Map(YMaps.jQuery("#YMapsID-633")[0]);
        map.setCenter(new YMaps.GeoPoint(36.176288,51.757817), 13, YMaps.MapType.MAP);
        map.addControl(new YMaps.Zoom());
        map.addControl(new YMaps.ToolBar());
        map.addControl(new YMaps.TypeControl());

        YMaps.Styles.add("constructor#pmdolPlacemark", {
            iconStyle : {
                href : "http://api-maps.yandex.ru/i/0.3/placemarks/pmdol.png",
                size : new YMaps.Point(36,41),
                offset: new YMaps.Point(-13,-40)
            }
        });


        YMaps.Styles.add("constructor#pmrdlPlacemark", {
            iconStyle : {
                href : "http://api-maps.yandex.ru/i/0.3/placemarks/pmrdl.png",
                size : new YMaps.Point(36,41),
                offset: new YMaps.Point(-13,-40)
            }
        });


        YMaps.Styles.add("constructor#FF3732c810Polyline", {
            lineStyle : {
                strokeColor : "FF3732c8",
                strokeWidth : 10
            }
        });
      
map.addOverlay(createObject("Placemark", new
YMaps.GeoPoint(36.15725,51.738667), "constructor#pmdolPlacemark",
"ОФИС<br/>ул. Мичурина, 12<br/>Вермя работы: 10:00 -
18:00<br/>тел. (054) 234-34-43"));
      
map.addOverlay(createObject("Placemark", new
YMaps.GeoPoint(36.204425,51.774356), "constructor#pmrdlPlacemark",
"СКЛАД БЫТОВОЙ ТЕХНИКИ<br/>ул. Спортивная, 12<br/>Вермя
работы: 9:00 - 17:00<br/>тел. (054) 221-14-42"));
      
map.addOverlay(createObject("Polyline", [new
YMaps.GeoPoint(36.156977,51.738292),new
YMaps.GeoPoint(36.151741,51.737067),new
YMaps.GeoPoint(36.148222,51.74133),new
YMaps.GeoPoint(36.153715,51.743141),new
YMaps.GeoPoint(36.165045,51.744953),new
YMaps.GeoPoint(36.170881,51.746764),new
YMaps.GeoPoint(36.173799,51.750068),new
YMaps.GeoPoint(36.179207,51.752092),new
YMaps.GeoPoint(36.183498,51.753264),new
YMaps.GeoPoint(36.18573,51.754223),new
YMaps.GeoPoint(36.189335,51.754862),new
YMaps.GeoPoint(36.182211,51.767964),new
YMaps.GeoPoint(36.184099,51.768497),new
YMaps.GeoPoint(36.185215,51.768869),new
YMaps.GeoPoint(36.191309,51.769295),new
YMaps.GeoPoint(36.195257,51.769828),new
YMaps.GeoPoint(36.197059,51.774354),new
YMaps.GeoPoint(36.200149,51.773981),new
YMaps.GeoPoint(36.201694,51.775259),new
YMaps.GeoPoint(36.204098,51.774887)], "constructor#FF3732c810Polyline",
"Схема проезда из офиса к складу"));
       
        function createObject (type, point, style, description) {
            var allowObjects = ["Placemark", "Polyline", "Polygon"],
                index = YMaps.jQuery.inArray( type, allowObjects),
                constructor = allowObjects[(index == -1) ? 0 : index];
                description = description || "";
           
            var object = new YMaps[constructor](point, {style: style, hasBalloon : !!description});
            object.description = description;
           
            return object;
        }
    });
</script>

<div id="YMapsID-633" style="width:547px;height:450px"></div>
<!-- Этот блок кода нужно вставить в ту часть страницы, где вы хотите разместить карту (конец) -->

Вопрос: куда надо вставить

placemark.setIconContent("Щелкни меня");

чтобы на каждой метке появилась эта надпись?

Заранее благодарен за ответ!

5 комментариев
API 1.x
Магия. Балун
DrFreez
3 октября 2010, 13:16
После вызова балуна не выполняется код. Выдернул из старого проекта, там всё работает ок. В чём может быть загвоздка?
obj.newPoint = function(mEvent){
      var geocoder = new YMaps.Geocoder(mEvent.getGeoPoint(), {results: 1, boundedBy: obj.map.getBounds()});
      YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
          alert(1);
          obj.map.openBalloon(mEvent.getGeoPoint(), 'form');
          alert(2);
      });
}
1 комментарий
API 1.x
Кнопка
Павлов Ян
3 октября 2010, 23:04

Как создать кнопку, чтобы по её нажатию карта переходила из режима "Схема" в режим "Сутник". Нужен именно пример. Заранее спасибо.

Видел пример со спутником, но хотелось бы посмотреть как это выглядит именно с кнопкой.

8 комментариев
API 1.x
Получить API код для уже готовой карты
pechatidom
4 октября 2010, 07:55
У меня есь готовая карта, хочу закинуть ее на сайт. Но не могу найти как получить API-код для нее. Подскажите где можно посмотреть, перерыл уже все((((
1 комментарий
API 1.x
static maps + jquery + thickbox
roma2k
4 октября 2010, 10:28

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

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

В данный момент, я пытаюсь прикрутить static api в карты проезда к нашим офисам, но есть небольшая проблема. Нужно, чтобы карты открывались посредством плагина к jquery thickbox, но при открытии картинки с картой, в контейнере thickboxа яндекс карты не отображаются. Может есть возможность воспользоваться, например, другим инструментом?

2 комментария
API 1.x
отображение Flash-панорамы и хтмл-страницы в дескрипторе метки.
doronichewa.anna
4 октября 2010, 12:12

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

метка создается в группе меток.

var groups = [
    createGroup("Учебные корпуса ", [
        createPlacemark(new YMaps.GeoPoint(135.063041,48.493603), "Главный корпус", "сюда надо вставить флеш"), style ......]

я второй день ищу пример на сайте про то как выводится хтмл содержимое с википедии - может кто помнит ссылку?

2 комментария
API 1.x
Группы объектов. JS API. Стили
DrFreez
4 октября 2010, 15:44

Как можно получить стиль группы объектов загруженных через YmapsML и вытащить из него картинку маркера?

в рамках этого примера http://api.yandex.ru/maps/ymapsml/examples/menufromymapsml.html

2 комментария
API 1.x
Создание карт для сайта со списком фирм
eugeny.shiryaev
4 октября 2010, 21:15

Хотел на своем сайте (справочник фирм) добавить к каждой фирме местоположение на карте. Посмотрел, как это сделано на других сайтах. Там при создании карты используются параметры долготы и широты.

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

5 комментариев
API 1.x
Как реализовать метки на карте?
tvoy-dom.zp.ua
5 октября 2010, 13:14
Нужно создать объекты на карте с недвижимостью пример на сайте Недвижимость Львов. Нужно такое же как на сайте но при создание карты возникла проблемма не могу потом добавлять объекты. В сумме где то 60 объектоав и не рационально при добавление одного объекта, по новой добавлять те 60 + 1 новый. Может все проще ну уже час сижу не могу вехать если кто подскажет буду просто счастлив...
4 комментария
API 1.x
Проблемы с геокодером
neondozor
5 октября 2010, 18:25

1. Не могу определить координаты при геокодировании. Пытаюсь использовать getGeoPoint(), но ответа никакого.

Что делать?

var geocoder = new YMaps.Geocoder("'.$addr.'");
alert(geocoder.getGeoPoint());

map.addOverlay(geocoder);

2. Также пытаюсь редактировать параметры метки geocoder - ничего не получается!

    Данный код ничего не меняет.

var geocoder = new YMaps.Geocoder("'.$addr.'");
geocoder.setIconContent("Щелкни меня"); 
map.addOverlay(geocoder); 
2 комментария
геокодирование
Не работает клик
neondozor
5 октября 2010, 20:17

Не работает почему-то обработка клика на метку.

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

echo '
var '.$hurl.' = new YMaps.Geocoder("'.$addr.'");
'.$hurl.'.setStyle("default#orangePoint");
YMaps.Events.observe('.$hurl.', '.$hurl.'.Events.Load, function ('.$hurl.') {

'.$hurl.'.get(0).setIconContent("'.$name.'");
})

map.addOverlay('.$hurl.');

YMaps.Events.observe('.$hurl.', '.$hurl.'.Events.Click, function () {
  window.location.href="www.site.ru/'.$hurl.'";
  alert("1");
});

Данный код без проблем выполняется:

YMaps.Events.observe(map, map.Events.Click, function () {
alert("Щелк!");
});
5 комментариев
API 1.x
addPoint или Polyline в решении проблем отрисовки авиамаршрутов на карте!!!
ser46802085
5 октября 2010, 22:09

мы почти уже раскрученный сайт "навигация деловой и малой авиации"
http://avia-navigation.ru
мы используем в нескольких местах сайта Yandex карты, они нам очень подходят,
но с прорисовкой маршрута на карте у нас возникли непредсказуемые
проблемы....о которые мы бьемся уже несколько месяцев, в пору менять движок
карт... главное меню в верхней панели, "маршруты"->"создать по
флайт-плану"->"редактировать"... появляется таблица с навигационными точками
и модуль карты . Тестовый маршрут - Москва (Шереметьево) UUEE - Витебск
UMII, справа на карте я каким-то чудом изобразил этот массив, используя
ф-цию Polyline....

но алгоритм строится из принципа
if(кол-во точек==2) trassa=new YMaps.Polyline(координаты геоточки1,
координаты геоточки2);
if(кол-во точек==4) trassa=new YMaps.Polyline(координаты геоточки1,
координаты геоточки2,координаты геоточки3, координаты геоточки4);
и т.д.

так дело не пойдет поскольку точек может быть до 100 штук в массиве
как загнать массив в ф-ию Polyline или addPoint????????вопрос видимо
риторический....
когда загоняем в addPoint "метод не поддерживается или неизвестен".....в
Polyline просто посылают к руководству или куда подальше!!!!конкретные
координаты не интересуют, поскольку массив с точками ...поток данных с
координатами, это вообще, неприемлемо
 


8 комментариев
API 1.x
SearchControl и свой gecodeProvider
yuzhno-sakh-site
6 октября 2010, 07:41

пытаюсь прицепить к searchcontrol'у свой геокод провайдер, для поиска по своей базе.

Прочитал документацию, пытаюсь искать по тестовым данным, поиск начинается, но затем в консоль отладки яваскрипта выдётся ошибку "t is Undefined" и всё.

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

вот куски кода.

иницализация контрола:

map.addControl(new YMaps.SearchControl({
            geocodeOptions:{ geocodeProvider: geocodeProvider  }
        }));

провайдер:

var geocodeProvider =
{
    geocode: function (request, options, successCallback, failureCallback)
    {
        //alert("request: " + request);
        successCallback({
            found: 1,
            suggest: 0,
            results: arr                           
        });
    }
};

тестовые результаты (массив arr):

var arr = [];
arr[0] = new YMaps.GeocoderResult(new YMaps.GeoPoint(142.730668, 46.957762));

При поиске функция geocode вызывается (выдаётся алерт, если его расскоментировать). (да и successCallback тоже, нормально работает если укзать пустой массив результатов и found: 0).

3 комментария
элементы управления,поиск,API 1.x
Заголовок не указан
lostamok
6 октября 2010, 12:07
Здравствуйте!
Есть коллекция точек на которую необходимо навести карту через YMaps.Map.setBounds()
var targetBounds = new YMaps.GeoBounds.fromCenterAndSpan(
pointsGeoCollectionBounds.getCenter() // new YMaps.GeoPoint(37.190851, 55.988273)
, pointsGeoCollectionBounds.getSpan() // new YMaps.Size(0.075171, 0.022941)
);
map.setBounds(targetBounds);
всё работает корректно только в Google Chrome
в остальных браузерах карта только правильно центрируется, но не устанавливает максимально возможный зум для установленной области.
В чём может быть проблема, может у меня руки кривые?
Что мне необходимо сделать, чтобы везде работало как в хроме?
19 комментариев
область видимости,коллекции
проблема с картами внутри невидимых div
GoogleBoom
6 октября 2010, 13:56

в поддержку вопроса о проблеме jquery+thickbox

это, похоже, не проблема самого tickbox, потому что аналогичная проблема с colorbox и просто с картой внутри невидимого изначально div-a. Я еще более упростил ситуацию: есть скрытый блок, который надо показать на клик куда нибудь. так вот при его открытии вместо карты - серое поле, есть только логотип.

если изначально блок видимый (#map_contaner.style.display=block), то карта грузится. похоже что она просто не подгружается, если родительский блок невидим. map.update() пробовал - не помогает.

<html>

    <script src="http://api-maps.yandex.ru/1.1/index.xml?key=..."
 type="text/javascript"></script>

<script type="text/javascript">

var map;

window.onload = function () {

map = new YMaps.Map(document.getElementById("YMapsID"));
map.setCenter(new YMaps.GeoPoint(60.70331, 56.753781), 16);

}

</script>

<body>

<div
style="display:none;position:absolute;top:100px;left:100px;"
id="map_container"><div id="YMapsID"
style="width:600px;height:400px"></div></div>

<a href="#" onclick="document.getElementById('map_container').style.display = 'block'">Тынц</a>
</body>

</html>

 
5 комментариев
серые тайлы
Путаются N и S, W и E у координат
loutist
6 октября 2010, 14:16

Время от времени задаваемый в XML балун ставится в самую неожиданную точку. Координаты, которые должны показывать на точку в Казахстане время от времени начинают указывать то в Индийский океан, то в Атлантический.

Страница: http://www.loutist.ru/gps/

Картинка: http://loutist.ru/gps/amazingmaps.png

Кусок XML, определяющий, куда поставить балун:

<ymaps:GeoObject>
<gml:name>Test</gml:name>
<gml:description>Description</gml:description>
<gml:Point>
<gml:pos>67.5439111111E 48.9061327778N</gml:pos>
</gml:Point>
</ymaps:GeoObject>
Изначально координаты задавались как <gml:pos>67.5439111111 48.9061327778</gml:pos> (без N и E),
но балун при них прыгал туда-сюда. При этом, через сервис maps.yandex.ru точка ставится правильно.
2 комментария
координаты,API 1.x
Добавление панорамы на карту
Lestat-riw
6 октября 2010, 15:12

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

1 комментарий
панорамы,API 1.x