【发布时间】:2012-01-12 09:54:41
【问题描述】:
我正在使用 HttpWebRequest 从 VB.net 桌面应用程序中使用 Google 的 DistanceMatrix API。我向它传递了一个包含两个位置(表示为经度和纬度)的 URL,它为我提供了使用真实街道以英里和分钟为单位的行驶距离。 (实际上是米和秒,但我转换它。)
它在我的桌面上运行良好。我的代码最重要的部分如下。但我不是网络/互联网/网络人,我是通过例子来做的。到目前为止,我不必知道它是如何工作的,我对此很满意。
问题: 谷歌表示他们有使用限制。就我个人而言,我并没有达到这些限制,但我的应用程序可能会分发给许多人,如果有很多其他人使用它,我们会一起使用。事实上,一些用户可能会从单个工作站超越限制。如果需要,我愿意为额外的使用付费,但我不知道在这种情况下是否需要这样做。
问题: 我已经彻底看过了(或者至少我认为我看过了),据我所知,谷歌并没有准确记录他们在这种情况下如何监控使用情况。该文档似乎假定它将始终从 Web 服务器使用,并且文档中有一些引用表明它不能从某些域中使用。但这是一个 Windows 窗体应用程序,那么它真的是“按域”吗?什么域?它是服务提供商的域吗?还是通过IP地址?重要的是,在这种情况下,每个用户会被单独计算,还是会以某种方式与应用程序本身相关联?
对不起,如果我看起来很笨。但是有什么帮助吗?
我的代码中的相关函数如下,还有谷歌关于这个 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
【问题讨论】:
-
您的网址中是否包含
key或类似名称? -
没有。我知道你的意思,因为我碰巧也使用雅虎的地理编码服务,并且需要一个密钥。但我用于 Google 的 DistanceMatrix 的确切 URL 是:maps.googleapis.com/maps/api/distancematrix/…(XXXX 被长/纬度对替换。)看,没有键。
标签: vb.net google-maps-api-3 httpwebrequest