2010-03-16 11 views
1

Мне нужно написать заявку, которая должна рассчитать расчетное расстояние между двумя адресами Великобритании; Я думаю, что я могу использовать Google следующим образом:найти расстояние между двумя адресами Великобритании

http://maps.google.com/maps/nav?q=from:London%20to:Dover

Однако, кто знает, что это ежедневно/ежемесячно предел запросов к базе данных с одного IP-адреса?

Мне нужно реализовать в коммерческом приложении (грузовые услуги), есть ли надежная альтернатива? Я могу потратить немного денег; но, некоторые';

Язык разработки/Платформа: C#, .NET

С уважением,

ответ

0

Я решил эту проблему с помощью Google Maps и я написал пользовательский API, используя Newtonsoft JSON.

Я еще не размещал решение в любом месте на блоге (скоро будет).

Если кто-то заинтересован в получении части кода, пожалуйста, пингуйте меня.

+0

Вы отправили этот код где-нибудь? – nitech

+0

еще нет :(.. не получая достаточно времени, чтобы отсортировать его .. lemme знает, если вам это нужно ... – effkay

+0

Вы уже выпустили код где-нибудь еще? Я ищу, чтобы сделать почти то же самое, что и вы в этом посте. Большое спасибо заранее. – jsmith

0

Вы можете легально использовать Google Maps в коммерческих определенных типов приложений. Они предоставляют вам лицензию и ключ API для встраивания в ваш код страницы. Конечно, есть некоторые ограничения. См. http://code.google.com/apis/maps/terms.html.

[Отредактировано для пояснения. Вы можете использовать его, если вы не делаете никаких денег непосредственно из него, что было целью OP.]

+5

... вы не должны ... 10.4 взимать плату с пользователей или любой другой третьей стороны за любую плату за использование API Карт API, Услуги или Контента, если вы не заключили отдельное письменное соглашение с Google или получил письменное разрешение Google сделать это – Axarydax

+0

спасибо Axarydax за указание; однако мое приложение не будет взимать плату за использование Карт Google, и оно не будет использоваться для расчета стоимости фрахта, оно будет использоваться для приблизительной цены: – effkay

+0

10.6 вы не должны использовать Сервис или Контент ... в связи с ... диспетчеризация, управление автопарком ... или аналогичные – MarkJ

5

Вы можете использовать базу данных OpenStreetMaps и сами провести расчет , но это потребует некоторой кодировки.

+0

Я готов к кодированию; любой намек на это? – effkay

+2

Есть нагрузка на Wiki по адресу: http://wiki.openstreetmap.org/wiki/Develop см. Также http://sourceforge.net/projects/travelingsales/ –

0

Как правило, большинство дорожных шейп-файлов имеют поля begin_address/end_address для каждого сегмента дороги, где вы можете интерполировать адреса. Суть в том, что у вас есть проблема с ГИС, проявляющаяся в сборе и организации адресных данных, NP, на мой взгляд, является более простой проблемой.

Ознакомиться с postgis. Вы можете конвертировать в него файлы формы. номер irC#postgis на irc.freenode.net чрезвычайно полезна, так что есть список рассылки.

+0

Я думаю, что получение дорожных векторных данных дешево станет первой проблемой. – MarkJ

2

Вы можете использовать openstreetmap с pgrouting в postgis, если все, что вам нужно, это приблизительные оценки. Если вы просто делаете город в город, тогда вам действительно не нужно беспокоиться о геокодировании, поскольку многие города Лонг-Лонга довольно хорошо знают.

Если ваша служба ограничена Англией, я бы сохранил таблицу БД из комбинаций для попарного расстояния из 5000 городов. Вычислите его один раз в автономном режиме, используя pgrouting, а затем вызовите это, когда появится запрос. Это сделает приложение намного быстрее для большинства ваших пользователей.

Все основные игроки карты имеют API маршрутизации (Yahoo, Bing, MapQuest, Nokia) Вы также можете посмотреть на deCarta для такого же обслуживания. Они были двигателем LBS за Yahoo и Google в течение некоторого времени.

[обновление], если вы просто делаете это для приблизительной оценки, вам действительно нужно выполнить маршрутизацию или вы можете просто провести прямолинейное расстояние. Прямую линию намного проще решить. Вам просто нужны длинные латы для центров городов без данных уличной сети или выполнения расчетов маршрутизации.

+2

Прямое расстояние линии может вводить в заблуждение для некоторых поездок? Довер в Норидж может получить грузовик немного влажным в прямом пути :) – MarkJ

+0

Согласовано, но вам определенно придется платить приличные деньги за алгоритмы маршрутизации, которые понимают это, и казалось, что стоимость была довольно большой проблемой. – TheSteve0

0

Как насчет 2-5 пенсов за запрос, платите как вы идете, до postcodeanywhere.co.uk. Они работают с АА, поэтому их данные, вероятно, достаточно точны и полны.

Можете сэкономить время разработки (что также переводит на деньги). Обратитесь к счетчикам бобов, стоит ли 2 пенса за каждую цитату.Если нет, вы можете запустить X самых популярных поездок через свою службу и кэшировать результаты (может нарушить их условия и положения, сначала проверьте).

1

По состоянию на 1 апреля The Ordnance Survey выпустила много своих данных, в том числе их продукт Code-Point, как бесплатный download from their website. Он также был mirrored by MySociety, который включает преобразование в координаты WGS84 (т. Е. Те, которые используются устройствами GPS), из которых было бы довольно тривиально вычислять большие расстояния между двумя точками - достаточно тривиально, чтобы он мог быть частью SQL если у вас есть точки в базе данных.

Если вам нужно быть более точными для фактического вождения расстояния, вы можете также загрузить данные Meridian, и реализовать достаточно базовый алгоритм маршрутизации (Djakstra может иметь смысла здесь)