Pergunta

Eu construí um aplicativo Winform há vários meses que os horários nomeações para técnicos de reparação. Eu gostaria de atualizar o aplicativo, adicionando um mapa para o endereço do cliente no formulário de cliente e, em seguida, imprimir esse mapa no relatório os técnicos tomam quando sair do escritório.

Eu estive olhando ao redor, mas eu não encontrei uma boa solução para isso ainda.

Actualmente tenho um endereço para o cliente. O que eu gostaria de fazer é enviar o endereço para um dos populares sites de mapa on-line e obter um mini-mapa do local. Posso quase fazer isso com o Google Maps usando sua função de link incorporado. Posso obter o seguinte HTML depois de adicionar um endereço para o seu site:

<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>

O meu primeiro plano era simplesmente analisar este HTML e inserir qualquer endereço do cliente era necessário no lugar este endereço, em seguida, mostrar o resultado em um objeto de navegador no formulário. No entanto, se eu mudar o endereço no iframe acima Google dá-me uma "Seu cliente não tem permissão para obter o URL ..." mensagem.

Eu não tenho nenhuma preferência sobre qual serviço de mapas que, em última instância usar, o importante é que a solução não pode ter um despesas associadas e sua utilizável a partir de formulários do Windows.

Alguém tem um ideias / recomendações / recursos sobre como lidar com isso?

Resultados :

Acabei usando o controle encontrada aqui . Acho que é uma solução "tudo bem" ... é tedioso para começar a trabalhar como o código não funciona como está. Estou muito chocado ao descobrir que nenhum do mapa populares APIs apoiar winforms.

Foi útil?

Solução

Tanto o Google Maps e Live Maps tem uma API pública.

Uma vez que você está fazendo winforms eu provavelmente usar mapas ao vivo.

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

Há alguns exemplos no CodePlex.

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

Outras dicas

alguns códigos de exemplo para o desenvolvimento de um controle de visualizador de mapa (NB: Eu duvido que este é estritamente dentro de sua licença)

Caso contrário, dependendo do seu orçamento, você pode usar a MapPoint ActiveX

Basta usar o valor dentro do src = "" como o local para um controle WebBrowser diretamente, sem o IFRAME.

ou

Criar um documento html mínima envolvendo o IFRAME, escrevê-lo a um MemoryStream, re-buscá-la de volta ao começo, e usar o MemoryStream para definir a propriedade DocumentStream do controle WebBrowser.

PW

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top