Вопрос

Несколько месяцев назад я создал приложение Winform, которое назначает встречи с ремонтными специалистами.Я бы хотел обновить приложение, добавив карту для адреса клиента в форму клиента, а затем распечатать эту карту в отчете, который получают специалисты, покидая офис.

Я искал вокруг, но пока не нашел хорошего решения для этого.

В настоящее время у меня есть адрес клиента.Что я хотел бы сделать, так это отправить адрес на один из популярных сайтов онлайн-карт и получить миникарту региона.Я могу почти сделайте это с помощью Google Maps, используя встроенную в них функцию ссылок.Я могу получить следующий HTML-код после добавления адреса на их веб-сайт:

<iframe width="300" height="300" frameborder="0" scrolling="no" 
   marginheight="0" marginwidth="0" 
   src="http://maps.google.com/maps?hl=en&amp;ie=UTF8&amp;t=h&amp;g=1193+Presque+Isle+Dr,+Port+Charlotte,+FL+33952&amp;s=AARTsJqsWtjYwJ7ucpVS6UU2EInkRk6JLA&amp;ll=27.012108,-82.087955&amp;spn=0.005735,0.006437&amp;z=16&amp;output=embed">
</iframe>

Мой первый план состоял в том, чтобы просто проанализировать этот HTML-код и вставить адрес любого клиента, который был необходим, вместо этого адреса, затем показать результат в объекте браузера в форме.Однако, если я изменю адрес в приведенном выше iframe, Google выдаст мне сообщение "У вашего клиента нет разрешения на получение URL ...".

У меня нет предпочтений в отношении того, какой картографический сервис я в конечном итоге использую, важно то, что решение не может иметь связанных с этим расходов и его можно использовать из Windows forms.

У кого-нибудь есть идеи / рекомендации / ресурсы о том, как с этим справиться?

Результаты:

В итоге я использовал найденный элемент управления здесь.Я нахожу это "приемлемым" решением...начинать работать утомительно, поскольку код не работает как есть.Я был довольно ошеломлен, обнаружив, что ни один из популярных map API не поддерживает winforms.

Это было полезно?

Решение

Карты Google и Live Maps имеют общедоступные API.

Поскольку вы делаете winforms, я бы, вероятно, использовал живые карты.

http://dev.live.com/VirtualEarth/

На CodePlex есть несколько примеров.

http://codeplex.com/Project/ProjectDirectory.aspx?TagName = Виртуальный% 20Earth

Другие советы

Существует пример кода. для разработки элемента управления вьюером карт (примечание: я сомневаюсь, что это строго в пределах их лицензии)

В противном случае, в зависимости от вашего бюджета, вы можете использовать элемент управления MapPoint ActiveX

Просто используйте значение внутри src="" в качестве местоположения для элемента управления WebBrowser напрямую, без IFRAME.

или

Создайте минимальный html-документ, содержащий IFRAME, запишите его в MemoryStream, выполните повторный поиск обратно к началу и используйте MemoryStream для установки свойства DocumentStream элемента управления WebBrowser.

PW

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top