我几个月前建立了一个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会向我提供“您的客户无权获取网址...”消息。

我没有偏好我最终使用的地图服务,重要的是该解决方案不能具有相关费用,并且可以从Windows表单中使用。

任何人都有关于如何解决这个问题的想法/建议/资源?

<强>结果:

我最终使用此处找到的控件。我发现它是“好的”解决方案...因为代码不能按原样运行,所以工作繁琐。我很惊讶地发现没有一个流行的地图API支持winforms。

有帮助吗?

解决方案

Google地图和动态地图都有公共API。

由于你正在做winforms我可能会使用实时地图。

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

CodePlex上有一些例子。

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

其他提示

一些示例代码用于开发地图查看器控件(注意:我怀疑这完全在他们的许可证内)

否则,根据您的预算,您可以使用 MapPoint ActiveX控件

只需使用src =&quot;&quot;中的值即可作为WebBrowser控件的位置,没有IFRAME。

OR

构建一个包装IFRAME的最小html文档,将其写入MemoryStream,重新查找它,然后使用MemoryStream设置WebBrowser控件的DocumentStream属性。

PW

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top