Как это реализовано на Яндекс API?
При обводке на мышь ставится эвент.
Кнопка зажимается - высчитываем с каждым перемещением курсора положение, рисуя при этом с помощью метода YMaps.Polygon линию. Соединяем первую и последнюю линию между собой, завершая "чертеж".
После высчитываются метки входящие в этот полигон, добавляются в группу, а остальные скрываются.
Как только метки скрыли - с помощью метода getCenterAndZoom объекта bounds определяем нужный центр/зум обводки.
У квартир есть адреса, собственно по ним получают координаты и выводят точки на карту.