1

对于我的学习和大学,我有一个项目需要使用 C# WPF 制作应用程序。此应用程序必须允许我选择两个地址之间的路径并在地图上显示路径,如谷歌地图。

如何实现谷歌网络服务 API?我有点迷失了,我不明白如何制作我的应用程序并适合谷歌地图本身。

有了这个,我也必须能够计算距离。

这是我对 webBrowser 所做的,但它显示了谷歌地图的整个网站:

我知道 WebBrowser 控件可以显示谷歌地图,但它实际上不起作用这实际上是我的代码

    private void btnCharger_Click(object sender, RoutedEventArgs e)
    {
        //Use static or WebControl we don't know yet.
        //This is the case we use webControl
        string street = "";
        string city = "";
        string zipcode = "";
        StringBuilder adresseQuery = new StringBuilder();
        adresseQuery.Append("http://maps.google.com/maps?q=");

        street = tbStreet.Text.Replace(" ", "+");
        adresseQuery.Append(street + ",+");
        city = tbCity.Text;
        adresseQuery.Append(city + ",+");
        zipcode = tbZipCode.Text;

        webBrowser1.Navigate(adresseQuery.ToString());*/


    }

所以在这段代码中,我创建了地址并通过谷歌地图将其发送到网络浏览器。但是它显示了整个谷歌地图页面,左侧栏和所有内容。我只想显示地图!我怎样才能只显示地图而不显示https://maps.google.com/上的条形图

我已经检查了这个链接,目前正在处理它,但这是静态的。

4

1 回答 1

0

对于路由/获取方向的部分(以及您需要的其他一些功能),您可以使用围绕 Google Maps API 的 .NET 包装器:

  1. 谷歌API
  2. 谷歌地图

gmaps-api-net已过时(在此回答时) - Directions API 的最后一次更新是在 2016 年进行的。

GoogleApi的使用示例:

using GoogleApi.Entities.Common;
using GoogleApi.Entities.Maps.Directions.Request;
using GoogleApi.Entities.Maps.Directions.Response;

public void GetRoute()
{
    DirectionsRequest request = new DirectionsRequest();    

    request.Key = "AIzaSyAJgBs8LYok3rt15rZUg4aUxYIAYyFzNcw";

    request.Origin = new Location("Brasov");
    request.Destination = new Location("Merghindeal");

    var response = GoogleApi.GoogleMaps.Directions.Query(request);

    Console.WriteLine(response.Routes.First().Legs.First().DurationInTraffic);
    Console.WriteLine(response.Routes.First().Legs.First().Distance);
    Console.WriteLine(response.Routes.First().Legs.First().Steps);
}
于 2020-04-30T20:17:59.120 回答