Я не думаю, что есть простой способ сделать это, но вот идея:
Сначала вам нужно получить координаты длинной / широты вашей стартовой позиции. Затем вам нужно будет выработать, скажем, 50 координат вокруг этой начальной позиции, скажем, в 1 километре от нее (ответ здесь может помочь). Затем вам нужно будет обойти каждую из этих точек и попросить время вождения, чтобы добраться туда с вашей стартовой позиции, используя Google Driving Directions API .
Затем вам нужно будет снова пройти точки, чтобы найти точки, которые находятся ниже разрешенного времени прохождения (например, 30 минут в вашем вопросе), переместить эти точки еще на один километр или около того (в том же направлении, что точка изначально перемещен из начальной позиции) и повторяйте запрос времени вождения, пока все не превысят разрешенное время в пути. Наконец, вы получите 50 координат, которые вы можете отобразить на изображении Google Maps в виде многоугольника, используя Google Javascript API для отображения многоугольников .
Этот метод требует много запросов в Google, поэтому вам нужно подумать о том, как Google ограничивает количество запросов, которые вы можете сделать в день.