Я использую Google DistanceMatrix API из настольного приложения VB.net, используя HttpWebRequest.Я передаю ему URL-адрес, содержащий два местоположения (выраженные как долгота и широта), и он дает мне проезжающие расстояния в милях и минутах, используя реальные улицы.(На самом деле метры и секунды, но я его конвертирую.)
Отлично работает с моего рабочего стола.Самая значимая часть моего кода ниже.Но я не парень в сети / интернете / сети, и я делаю это на собственном примере.Пока мне не нужно знать, как это работает, и я к этому хорош.
ПРОБЛЕМА: Google говорит, что у них есть ограничения на использование.Лично я не подхожу к этим пределам, но мое приложение может быть распространено среди многих, и если многие другие будут его использовать, мы будем вместе.Фактически, некоторые пользователи могут выходить за пределы одной рабочей станции.Я готов заплатить за дополнительное использование в случае необходимости, но я не знаю, был бы я обязан сделать это в этой ситуации.
ВОПРОС: Я посмотрел полностью, (или, по крайней мере, я думаю,У меня есть) и, насколько я вижу, Google не документирует, как именно они контролируют использование в этом сценарии.Документация, кажется, предполагает, что она всегда будет использоваться с веб-сервера, и в документации есть некоторые ссылки, которые нельзя использовать с определенных доменов.Но это приложение Windows Forms, так что это действительно «по доменам»?Какой домен?Это домен поставщика услуг?Или это по IP адресу?И что важно, будет ли каждый пользователь учитываться отдельно в этой ситуации, или он будет каким-то образом привязан к самому приложению, где бы он ни находился?Но какая-нибудь помощь?
Соответствующая функция из моего кода ниже, а также здесь страница документации Google для этого API.
http://code.google.com/apis/maps/documentation/distancematrix/
Public Function GetHTML(ByVal URL As String, Optional ByVal UserName As String = "", Optional ByVal Password As String = "") As String
Try
Dim reader As StreamReader
Dim Request As HttpWebRequest = HttpWebRequest.Create(URL)
'The following line empowers some downloads to work.
If UserName <> "" Then
Request.Credentials = New NetworkCredential(UserName, Password)
End If
Request.AllowAutoRedirect = True
Request.CookieContainer = CookieJar
Dim Response As HttpWebResponse = Request.GetResponse()
reader = New StreamReader(Response.GetResponseStream())
Response.Close()
Return reader.ReadToEnd()
Catch
Return ""
End Try
End Function