Здесь происходит довольно много вещей.
Вы должны иметь прослушиватели событий, когда пользователь нажимает на карту.
Вы должны разместить маркеры там, где они щелкают.
Вам нужно нарисовать два типа полилиний; статический тип, соединяющий два маркера и динамическую пунктирную линию при перемещении курсора или перетаскивании маркера.
Когда вы закрыли многоугольник, вам нужно, чтобы ваш поиск возвращал только свойства внутри этой фигуры (хотя они фактически делают это в радиусе X миль от этой фигуры).
Они также вставляют маркеры наполовину вдоль линий, которые вы можете перетаскивать - для этого потребуется географическая библиотека с использованием функции интерполяции.