Клуб API Карт

ближайшие точки

Mariya Mariya
15 ноября 2010, 14:41

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

т.е. пользователь будет видить не все точки которые есть в определенном меню, а только те, которые находятся допустим в 300 метрах от него (его местоположение, определяется поиском адреса), а расстояние вводится в отдельное поле.

Подскажите как это реализовать?

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

просто храните свои точки, и просто проведите над этим список простейшие операции
а точнее можно, смысл понял а как организовать это нет, JQuary практически не знаю
var points = массив точек
var filter=function(point){return true || false;}
for(var i in points){
 points[i][filter(points[i]?'show':'hide')();
}

остается только в функции filter сделать проверку на попадание в нужный радиус, а точками определить show и hide
Положите все ваши объекты в группу (YMaps.GeoObjectCollection) и фильтруйте. Предположим, что вы создали группу с именем group, местоположение пользователя хранится в переменной userLocation (геоточка), а в переменной maxDistance хранится ограничение по расстоянию (300 метров). Тогда

var filterObjects = group.filter(function (obj) {
    return obj.distance(userLocation) });

В итоге переменная filterObjects будет содержать массив объектов, расположенных от пользователя с координатами userLocation на расстоянии не более maxDistance;
а можно по подробней расписать? а то я JQuary не знаю, и как сделать что бы максимальный размер брался из формы?
сможете подсказать?