Отображение карты в приложении Windows Form - PullRequest
6 голосов
/ 08 января 2009

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

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

У меня сейчас есть адрес для клиента. Что я хотел бы сделать, это отправить адрес на один из популярных сайтов онлайн-карт и получить мини-карту локали. Я могу почти сделать это с помощью карт Google, используя встроенную функцию ссылок. Я могу получить следующий 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.

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

Результаты

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

Ответы [ 3 ]

1 голос
/ 08 января 2009

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

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

1 голос
/ 08 июня 2010

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

ИЛИ

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

PW

0 голосов
/ 08 января 2009

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

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

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

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

http://codeplex.com/Project/ProjectDirectory.aspx?TagName=Virtual%20Earth

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...