Получить полный URL из GoogleMaps - PullRequest
0 голосов
/ 12 июня 2019

Я использую CefSharp версии 43.0.0 в большом приложении WinForms, где я передаю параметры в Карты Google, т.е. адреса источника и назначения, чтобы создать знакомую карту и пошаговые инструкции. Это работает хорошо. Однако мне нужно получить более длинный и полный URL-адрес, который пользователь обычно получает с помощью Google Maps.

Если я возьму те же параметры, т. Е. Простой источник из и пункт назначения. Чтобы обратиться и подключить его к любому другому браузеру, Google Maps вернет более длинный и более полный URL-адрес, содержащий широту и долготу. (Обратите внимание на образец, показанный ниже).

Когда я передаю параметры в Google с помощью веб-браузера Chromium (CEF), я получаю карту, но не полный URL-адрес.

Может кто-нибудь подсказать, как я могу получить нужный URL при использовании CEF? Помните, что это приложение WinForms, а не веб-приложение.

https://www.google.com/maps/dir/2230+Picton+Pkwy,+Akron,+OH+44312/1680+E+Waterloo+Rd,+Akron,+OH+44306/@41.0149182,-81.48249,14z/data=!3m1!4b1!4m13!4m12!1m5!1m1!1s0x88312b00dd84936f:0xb1901f583967068e!2m2!1d-81.467646!2d41.003081!1m5!1m1!1s0x88312bb5f325ca6b:0x48697b37d442dccf!2m2!1d-81.4676985!2d41.0246252

Вот то, что я пробовал до сих пор, как показано в следующем коде. Я передаю параметры из одной формы в форму, содержащую браузер Chromium.

Создает карту с указаниями, но не возвращает более длинный и полный URL-адрес, который я получил бы, если бы ввел те же параметры вручную в другой браузер, такой как Firefox, Chrome и т. Д.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CefSharp.WinForms;
using CefSharp;

namespace myApplication
{
    public partial class myDirectionFinder : Form
    {
        public ChromiumWebBrowser browser;

        public myDirectionFinder()
        {
            InitializeComponent();

            CefSettings settings = new CefSettings();
            if (!CefSharp.Cef.IsInitialized)//Cef can only be initialized once.     Using 'Cef.IsInitialized' guards against an exception.
            {
                CefSharp.Cef.Initialize(settings);
            }
        }

        private void myDirectionFinder_FormClosing(object sender,     FormClosingEventArgs e)
        {
            browser = null;
        }

        private void myDirectionFinder_Load(object sender, EventArgs e)
        {
            browser = new ChromiumWebBrowser(txtUrlPasser.Text) { Dock = DockStyle.Fill };
            txtFinalAddr.Text = "";
            txtFinalAddr.Text = browser.Address.ToString();
            pnlBrowser.Controls.Add(browser);
        }
    }
}
...