Мне нужно сгруппировать адреса с учетом их расстояний. Допустим, у меня есть список из 8 адресов. 5 в Нью-Йорке и 3 в Нью-Джерси. Из этих 5 в Нью-Йорке 3 находятся недалеко от МЕТ и 2 - от ВТЦ. Эти трое в Нью-Джерси составили бы одну группу, те, кто был близок к МЕТ, — другую, а также те, кто был близок к ВТЦ.
Я хотел бы отправить этот список адресов и получить наиболее близкие друг к другу, сгруппированные. Есть ли какой-либо API от Google Maps или Bing Maps, который мог бы это сделать? Если нет, у вас есть какие-либо предложения о том, как решить эту проблему?
В приведенном ниже вопросе упоминается множество способов расчета расстояния, но мне интересно, есть ли что-то уже созданное (и доступное) от этих крупных компаний. Я не хотел бы пересчитывать каждый адрес в списке каждый раз, когда добавляется новый.
Как сгруппировать точки широты/долготы, которые «близки» друг к другу?
Кроме того, есть еще одна проблема, которая не была затронута в вышеупомянутом вопросе... Один адрес может быть близким к группе и нескольким другим группам. Например:
В этом примере я выделил как минимум 4 группы. B образует одну «близкую группу» с A/C, а также с C/F, A/E/G и E/F/D/H. Поэтому я также хотел бы знать эти переменные. К какой группе адрес ближе, или хотя бы я думал об ограничении групп по количеству участников. В моем примере, используя мой предложенный подход, B будет частью либо КРАСНОЙ, либо ЧЕРНОЙ группы.
РЕДАКТИРОВАТЬ: Кто бы ни проголосовал за вопрос, не могли бы вы объяснить, почему? Что можно улучшить? Что не так просто понять? Спасибо.