Domanda

Diversi mesi fa ho creato un'app Winform che pianifica gli appuntamenti per i tecnici di riparazione. Vorrei aggiornare l'app aggiungendo una mappa per l'indirizzo del cliente nel modulo del cliente, quindi stampandola sul rapporto che i tecnici prendono quando escono dall'ufficio.

Mi sono guardato intorno ma non ho ancora trovato una buona soluzione per questo.

Al momento ho un indirizzo per il cliente. Quello che mi piacerebbe fare è inviare l'indirizzo a uno dei popolari siti di mappe online e ottenere una minimappa della locale. Posso quasi farlo con le mappe di Google usando la loro funzione di collegamento incorporato. Posso ottenere il seguente codice HTML dopo aver aggiunto un indirizzo al loro sito Web:

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

Il mio primo piano era semplicemente analizzare questo HTML e inserire qualsiasi indirizzo del cliente fosse necessario al posto di questo indirizzo, quindi mostrare il risultato in un oggetto browser sul modulo. Tuttavia, se cambio l'indirizzo nell'iframe di cui sopra, Google mi dà un " Il tuo cliente non ha l'autorizzazione per ottenere l'URL ... " messaggio.

Non ho preferenze su quale servizio di mappe utilizzi alla fine, l'importante è che la soluzione non possa avere spese associate ed è utilizzabile dai moduli di Windows.

Qualcuno ha avuto idee / raccomandazioni / risorse su come affrontare questo?

Risultati :

Ho finito con il controllo trovato qui . Lo trovo un "ok" " soluzione ... è noioso iniziare a lavorare poiché il codice non funziona così com'è. Sono piuttosto sorpreso di scoprire che nessuna delle API delle mappe popolari supporta winforms.

È stato utile?

Soluzione

Sia Google Maps che Live Maps hanno un'api pubblica.

Dato che stai facendo winform, probabilmente userò le mappe live.

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

Ci sono alcuni esempi su CodePlex.

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

Altri suggerimenti

Esiste alcuni esempi di codice per lo sviluppo di un controllo per la visualizzazione di mappe (NB: dubito che ciò rientri rigorosamente nella loro licenza)

Altrimenti, a seconda del budget, è possibile utilizzare il MapPoint ActiveX control

Usa semplicemente il valore all'interno di src = " " come posizione per un controllo WebBrowser direttamente, senza IFRAME.

OPPURE

Crea un documento html minimo racchiudendo l'IFRAME, scrivilo su MemoryStream, cercalo nuovamente all'inizio e usa MemoryStream per impostare la proprietà DocumentStream del controllo WebBrowser.

PW

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top