需要获取两个Google地图位置之间的距离

问题描述 投票:0回答:1

我有一个 VB.NET WinForms 应用程序。我使用 webview2 控件作为网络浏览器。其实我不需要进行一般的浏览,而是我只需要打开谷歌地图,然后输入两个位置,然后获取我输入的两个位置之间的谷歌地图距离。但是虽然我的 webview2 控件显示了完整的 Google 地图,并且用户可以获取任意两个位置之间的路径,如图所示:

A sample from Google maps

但是有一个问题:我需要从 webview2 控件中获取三个值并将它们显示在三个单独的文本框中,即

位置1:(字符串格式)
位置2:(字符串格式)
距离:7.2公里(数字格式)

我需要这三个值在单独的文本框中显示它们,然后我需要将这三个值保存在数据库中。

我为一家运输公司开发了这个应用程序,上面解释的三个值将构成一条完整的运输路线。

我需要使用其他控件来代替 webview2 来满足我的需求吗?

我想我实际上已经弄清楚了我需要的东西。

如果有人可以在这方面提供帮助,我将非常非常感激。

Imports System.Text
Imports Microsoft.Web.WebView2.Core

Private Sub txtSearc_KeyDown(sender As Object, e As KeyEventArgs) Handles txtSearch.KeyDown
   If e.KeyCode = Keys.Enter Then
      Try
         Dim queryaddress As New System.Text.StringBuilder
         queryaddress.Append("https://www.google.com/maps?q=")
         If txtSearch.Text <> "" Then
            queryaddress.Append(txtSearch.Text + "," & "+")
         End If
         MyWebView_.CoreWebView2.Navigate(txtSearch.Text)

      Catch ex As Exception
         Exit Sub
      End Try
   End If
End Sub
vb.net google-maps-api-2 webview2
1个回答
0
投票

这是一个完美的案例,您应该使用 API 而不是进行网络抓取(就像您现在所做的那样)。 Google 地图可以随时更改其 UI,这会破坏您的网络抓取方法。此外,UI 被设计为人类可读,而不是机器可读(这使得机器难以解析)。

相反,您应该使用 Google Maps Routes API。您的应用程序可以直接与 Google 地图对话,Google 将以机器可读的形式告诉您所需的所有信息。当然,缺点是您需要根据每个 API 请求向 Google 付费,但由于您似乎创建了一个商业产品,因此您可以将该费用转嫁给您的客户。

(注:我与 Google 没有任何关系。)

© www.soinside.com 2019 - 2024. All rights reserved.