Добавление API Bing/Google Maps в VB или C++

Здравствуйте, в настоящее время я использую простую функцию веб-поиска в качестве своей картографической системы, но я хотел бы добавить карты непосредственно в приложение, чтобы оно выглядело более профессионально. Я добавил свой оригинальный код, который находится в VB, просто чтобы вы могли понять, что у меня уже работает, и чтобы вы могли дать мне представление о том, как сделать еще один шаг, я также рассматриваю возможность переписать свое приложение на C++.

Private Sub BTNMAP_Click(sender As Object, e As EventArgs) Handles BTNMAP.Click
    Automate = True

    Maps.Automate = Automate
    Maps.SearchInput = PostcodeTextBox.Text
    Maps.WebBrowser1.Navigate("https://www.bing.com")
    Maps.Show()
End Sub

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    If Automate = True Then Automate = False Else Exit Sub


    Dim txt As HtmlElement = WebBrowser1.Document.GetElementById("q")

    Dim btn As HtmlElement = WebBrowser1.Document.GetElementById("go")


    txt.SetAttribute("value", SearchInput)
    btn.InvokeMember("click")
End Sub

В качестве альтернативы я хотел бы изменить свой Map.WebBrowser1.Navigate("https://www.bing.com/mapspreview"), но я изо всех сил пытался найти html-элементы для текстового поля и кнопки.

Спасибо за помощь.


person Hadleigh Gaudreau    schedule 31.10.2015    source источник


Ответы (1)


Если вы хотите открыть веб-страницу в своем приложении, вы можете найти документацию по созданию URL-адресов для карт Bing здесь: https://msdn.microsoft.com/en-us/library/dn217138.aspx

Эти URL-адреса также должны работать с предварительным просмотром карты, однако сайт предварительного просмотра использует много HTML5, и я сомневаюсь, что он будет работать внутри веб-браузера в приложении WPF или WinForm, поскольку я считаю, что элемент управления WebBrowser эмулирует IE7, который не поддержка HTML5. Есть способы обойти это, изменив настройки реестра: http://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version. Но, если это приложение не будет использоваться только в нескольких приложениях, скорее всего, это не вариант.

Все это говорит о том, что использование карты JavaScript в вашем приложении — не лучшая идея. Особенно, когда есть отличный элемент управления Bing Maps WPF, который вы можете использовать в своем приложении (также можно использовать в приложениях WinForm). Вы можете найти документацию по этому элементу управления здесь: https://msdn.microsoft.com/en-us/library/hh750210.aspx

Вы также можете получить доступ к этому элементу управления через Nuget: http://www.nuget.org/packages/Microsoft.Maps.MapControl.WPF/

Вот некоторые дополнительные ресурсы, связанные с элементом управления Bing Maps WPF:

Сообщения в блогах: https://blogs.bing.com/maps/?s=WPF

Примеры кода: https://code.msdn.microsoft.com/site/search?query=Bing%20Maps%20WPF&f%5B0%5D.Value=Bing%20Maps%20WPF&f%5B0%5D.Type=SearchText&ac=2

Для использования элемента управления картой вам понадобится ключ Bing Maps. Вы можете получить его через Azure Marketplace здесь: https://azure.microsoft.com/en-us/marketplace/partners/bingmaps/mapapis/

person rbrundritt    schedule 31.10.2015