Как вы уже упоминали Карты Google, я бы рекомендовал сделать это как веб-сайт с использованием HTML/CSS/JavaScript. Все, что вам нужно, чтобы собрать подобное, уже существует, и все это слишком прямолинейно.
С точки зрения шагов, которые вы должны будете принять, это будет примерно следующим образом:
1. Получить список информации аэропорта вы хотите
пример Поисковый запрос: " Информация аэропорта JSON «
Вам понадобятся по крайней мере их широта, долгота и код аэропорта. Быстрый поиск поднял этот great looking project. Отфильтруйте аэропорты, которые вы не хотите. Сохраните результат как JSON, или просто прямо use one that's JSON already.
Добавьте эту информацию на свою веб-страницу, выполнив запрос ajax - если вы новичок в JavaScript, большинство людей use jQuery for that.
2. Выяснить какую карту вы хотите использовать
Вы можете использовать Google Maps, но есть так много других замечательных вариантов, как OpenLayers или что-нибудь, что это основано на нем, как MapBox. Я буду ссылаться на OpenLayers, потому что это бесплатно и чудесно легкий проект, с которого можно начать. Добавьте его на свой сайт, а затем get to know its API. Эти API легко понять, и они предоставляют множество примеров того, как показывать строки, а также маркеры (для реальных аэропортов).
3. Показать ваши аэропорты
Использование API карте в и ваши данные в формате JSON, положить markers на карте, однако вы хотите, чтобы отобразить его. Там examples for flights too. То же самое относится к вашим зонам без полета; эти API карт позволяют вам display areas too.
4. Выполните ваш Дейкстра маршрутизации
Там очень широкий спектр graph libraries for JavaScript. Если вы не можете использовать библиотеку для этого, вы можете хотя бы использовать их для вдохновения. Используйте информацию о своем аэропорту с библиотекой графов, которая подходит вам для выполнения необходимых вам поисков. Поиск correct grand-circle distance can also be done with the map API, избегая необходимости реализовать это самостоятельно.Используйте расстояние, как ваши веса dijkstra.
5. Добавлена поддержка для полетов зоны
Этой часть вопроса немного расплывчатые, поскольку есть много вариантов здесь, как, например, нелетающие зоны имеют разную высоту, а скорость транспортного средства влияет на то, как следует планировать маршрут. Например, это зависит от того, являются ли транспортные средства небольшими беспилотными летательными аппаратами или коммерческими самолетами. Простой подход состоит в том, чтобы просто удалить любые маршруты, которые пересекают ваши запретные зоны; Быстрый поиск поднял this answer за помощью с этой частью. Альтернативно исследуйте, как маршруты планируются для ваших целевых автомобилей и имитируют это.
Насколько это точно необходимо? Земля, конечно, не плоская; прямые линии будут отключены потенциально сотнями миль. –
Я бы использовал карту листовки и использовал leafletRouting и завершил задачу как webapp, используя html и JavaScript. – ViktorG
Не нужно быть очень точным, так как все, что мне нужно показать, это то, что я могу правильно реализовать алгоритм. Однако я подумал о том, как компенсировать кривизну земли, возможно, используя вычисление большого круга, поэтому я пытаюсь найти api для этого. –