在Windows Form应用程序中显示地图

6
我几个月前建了一个 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表单中使用。
有人有关于如何解决这个问题的想法/建议/资源吗?
结果:
我最终使用了在这里找到的控件。我认为这是一个“还行”的解决方案……它很繁琐,因为代码不能直接使用。我很惊讶地发现,没有任何流行的地图API支持winforms。

只是一个更新...我还没有尝试过这个控件,但它似乎很有前途:http://www.microsoft.com/en-us/download/details.aspx?id=27165 - Sailing Judo
3个回答

1

直接使用src =“”内的值作为WebBrowser控件的位置,而无需使用IFRAME。

或者

构建一个最小的HTML文档包装IFRAME,将其写入MemoryStream,重新查找到开头,并使用MemoryStream设置WebBrowser控件的DocumentStream属性。

PW


1

0

以上的解决方案都不是很好,但由于我使用了在CodePlex上找到的控件,所以我选择了这个答案。 :) - Sailing Judo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接