Передо мной, казалось бы, непростая задача - попытаться проложить морской путь от одного морского порта к другому морскому порту. Конечная цель - нанести это на карту Google (или Bing) в виде ломаной линии.
Путь должен:
Итак, моя первая идея заключалась в получении данных о береговых линиях по всему миру. Такая штука доступна здесь . К сожалению, он неполный. OpenStreetMap показывает эти данные, а береговые линии для таких вещей, как Карибские острова, отсутствуют.
Я также думал о геокодировании (недостаточно надежно, плюс я прожигал бы тысячи запросов, пытаясь построить маршрут)
Моя следующая идея заключалась в том, чтобы каким-то образом использовать Карты Google и проверить, является ли точка синий или нет. GMaps.NET , отличный компонент сопоставления .NET, позволил мне добиться этого путем создания растрового изображения того, что он отображает, и тестирования цвета пикселя.
Первая проблема заключается в том, что точность этого теста попадания равна только разрешающей способности изображения, которое я тестирую. Для портов, расположенных близко друг к другу, это нормально, для более удаленных портов страдает точность.
Вторая проблема , если предположить, что я использую какой-то метод «тестирования синих пикселей», заключается в том, какой алгоритм подходит для поиска маршрута. Алгоритм A * выглядит многообещающим, но я не уверен, как продвинуть путь «наружу» от существа к побережью. Ни как уменьшить сложность ломаной линии.
Итак ... любой ввод : идеи, мысли, ссылки, примеры кода и т. Д. Приветствуются. Спасибо.
(Должен добавить, что это сайт о путешествиях. Точность не слишком важна, я не управляю доставкой или чем-то еще)