Laden...
S
sockesg
myCSharp.de - Member
1
Themen
2
Beiträge
Letzte Aktivität
vor 19 Tagen
Dabei seit
26.05.2025
Erstellt vor 24 Tagen

Hi Abt,

vielen Dank für deine Antwort. Also wenn google erzeit die .NET SDKs ereuert, wäre das vielleicht eine Erklärung. Es ist halt nur die Frage, ob und wann derService danach wieder normal läuft.

Bzgl. der Abfrage: Die erfolgt genau wie oben beschrieben. In der Variable "strGoggleAPIKey" ist eben dieser kryptische API-Key enthalten, de ich ausmeinem Google-Account habe. An der Art und Weise, wie die Abfrage erfolgt habeich nichts geändert. und das hat, wie gesagt bisher ohne Probleme funktioniert.

Gibt es sonst alternative Methoden, um eine Google-Route zu erhalten?

Viele Grüße,

Michael

Erstellt vor 25 Tagen

Hallo zusammen,

ich hoffe ich bin hier im richtigen Bereich. Seit einigen Tagen habe ich ein kleines (großes) Problem. Es geht um folgendes:

Eine Anwendung greift auf Termine in einem Outlook-Kalender zu unter zieht daraus mehrere Adressen, die dann in einer einer Kompontene vom Typ GMap.NET.WindowsForms.GMapControl als Route dargestellt werden. Dazu habeich einen Google API-Key erstellt, der für die Routes API freigegeben ist.

Einbindung von GMap

[...]
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using GMap;
using GMap.NET;
using GMap.NET.MapProviders;
using GMap.NET.WindowsForms;
using System.Runtime.InteropServices;
using System.Net;
using System.IO;
[...]

Nun gibt es zwei Probleme:

  1. Setzen der Position der GMap-Komponente: Der folgende Code hat die Position auf der GMap-Komponente aktualisiert, wobei "strAddress" die tatsächliche Adresse in der Form "Straße Nr, PLZ Ort" enthält.
gmMap.SetPositionByKeywords(strAddress);                                    
gmMap.Position = new PointLatLng(gmMap.Position.Lat, gmMap.Position.Lng);

Wie gesagt, das hat immer funktioniert, jetzt jedoch nicht mehr.

2. Das zweite Problem ist noch gravierender. In einer Testmethode, habe ich die Geokoordinaten von zwei Punkten in eine Liste vom Typ "PointLatLng" erfasst und dann versuch die Routen-Informationen zu erhalten (ich benötige später die Entfernung und die Dauer9

[...]
private List<PointLatLng> _points;
[...]
 _points.Add(new PointLatLng(Convert.ToDouble(lblLat.Text), Convert.ToDouble(lblLong.Text)));
private void btnGetRoute_Click(object sender, EventArgs e)
       {
           double dblDistance;
           int i;
           MapRoute route;
           GMapRoute r;
           GMapOverlay routesOverlay;
           dblDistance = 0;
           GMap.NET.MapProviders.GMapProviders.GoogleMap.ApiKey = strGoggleAPIKey;
           //GoogleMapProvider.Instance.ApiKey = strGoggleAPIKey;
           for (i = 0; i < _points.Count-1; i++)
           {
               route = GoogleMapProvider.Instance.GetRoute(_points[i], _points[i + 1], false, false, 10); //<====== HIER IST DAS PROBLEM             
               r = new GMapRoute(route.Points, "My route");
               routesOverlay = new GMapOverlay("routes");
               routesOverlay.Routes.Add(r);
               r.Stroke.Width = 5;
               r.Stroke.Color = Color.Blue;
               gmMap.Overlays.Add(routesOverlay);
               gmMap.Zoom = gmMap.Zoom + 1;
               gmMap.Zoom = gmMap.Zoom - 1;
               dblDistance = dblDistance + route.Distance;
           }
           
           tbDistance.Text = Convert.ToString(decimal.Round(Convert.ToDecimal(dblDistance), 2)) + " km";
       }

Das Problem liegt dann in der Zeile

route = GoogleMapProvider.Instance.GetRoute(_points[i], _points[i + 1], false, false, 10);

Wenn ich mir das Objekt "route" in der Überwachung anschaue erkennt man als Fehlermeldung "REQUEST_DENIED". Also offenbar wurde mein API-Key abgelehnt. Wie gesagt, das Ganze hat bis vor Kurzem einwandfrei bei mir und einem Kollegen wunderbar funktioniert. Nun plötzlich nicht mehr. Auch nach der Erstellung eines neuen APIKeys bliebt das Problem bestehen.

Habt ihr vielleicht eine Idee? Wurde der Service vielleicht gesperrt? Wurde irgendetwas geändert, wovon ich nichts mitbekommen habe?

Ich würde mich freuen, wenn mir hier jemand helfen kann. Bei Rückfragen einfach fragen.

Vielen Dank im Voraus und beste Grüße,

Michael