Клуб API Карт

Заголовок не указан

progersan
2 сентября 2009, 16:08

можно ли пользоваться геокодером именно так?

placemark = new YMaps.Placemark(new YMaps.Geocoder('россия, москва', {results: 1, boundedBy: map.getBounds()}), {style: "marker#1" });

Кто-нибудь пробовал что-то подобное , когда есть куча точек в базе (а точнее не точек а названий местрости) , которые нужно вывести на карту?


8 комментариев
Подписаться на комментарии к посту
Как Вы написали - работать не будет. В конструктор класса YMaps.Placemark первым параметром передается объект класса YMaps.GeoPoint.

Геокодер из себя представляет группу объектов, к которым можно обращаться по индексам. Поэтому объект геокодер можно добавлять на карту с помощью метода addOverlay():
map.addOverlay(new YMaps.Geocoder("Москва", {result: 1}););

Процесс геокодирования - это асинхронный процесс. Если с результатами геокодирования необходимо производить дополнительные действия, то необходимо обрабатывать событие Load:
var geocoder = new YMaps.Geocoder("Москва");
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
    if (geocoder.length()) {
        // Добавляем первый результат геокодирования на карту
        map.addOverlay(geocoder.get(0));
    }
});

вот некая такая карта пользователей получилась :)

http://www.moskvachi.ru/mapb.php

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

Может что посоветуете для оптимизации..

p.s. gzip уже включил ;)

что светлых умов здесь не бывает более? :)
Мои предложения и пожелания:
1. Геокодировать не при каждом запуске, а один раз, а потом отображать сохраненные координаты.
2. Уменьшить размер значки, фотографии отображайте в балуне.
3. Подгружать только объекты из видимой области карты.
4. Использовать кластеризацию, чтобы избежать перекрывания меток.

Пример: probki.avtoradio.ru

спасибо за идейки :)


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


а вот не поможете как получить Bounds (как я понимаю) видимой области и ограничить показ или загрузку...?

map.getBounds() возвратит видимую область карты.

легко найти функцию... пример видел,

но вот как определить входит ли моя Point в map.getBounds()?


или я не с той стороны подхожу?