【发布时间】:2020-07-09 11:39:39
【问题描述】:
对于我正在开发的 C# 桌面应用程序,我需要(详细/高分辨率)空中图片。 我知道我们有谷歌地图和谷歌地球和其他一些服务,现在有些显示非常好的分辨率的空中图像。 同时,我不仅需要图像,还需要控制缩放/旋转,并且需要一些机制来测量图像中的距离。 所以我需要的是一些空中图像 API。
在对数据源进行了一些研究之后,我认为获取空中图像的最佳选择是:
- 谷歌地图 API
- 可下载的桌面应用程序 Google 地球。
Google 地图/Google 地球有很多“版本”。一些基于网络,一些作为可下载的应用程序。 我得出的结论是,如果我需要 Google Maps API,并且想要一个 API 密钥,我必须提供信用卡信息(即使在免费配额内)。过去,您无需提供信用卡信息即可获得免费的 API 密钥。我没有信用卡,而且由于它不是我正在开发的商业应用程序,所以我申请信用卡只是为了获得 API 的免费配额,这太过分了。可惜了。
我设法将 ChromiumWebBrowser 控件添加到我的应用程序中,并在其中嵌入了 Google 地图。这意味着我在我的应用程序中嵌入了一个网络浏览器,并将谷歌地图加载到其中,就像您在浏览 maps.google.com 时所做的那样。我可以尝试在我的嵌入式网络浏览器中操作 javascript 来控制在其中运行的地图应用程序,但这似乎既复杂又麻烦。
如果有插件或可以由我自己的代码控制的东西,另一种解决方案可能是使用可下载的 Google 地球。这可能意味着必须在计算机上安装 Google 地球,但这没关系。
所以我的目标是:
- 获取空中图片(可从任何来源获得最高质量)。
- 在某些服务上创建帐户/api 密钥并使用某些免费计划是没有问题的,但要实现这一点的信用卡麻烦是个问题。
- 不仅可以获取图像,还可以对其进行控制。因为可以通过变通方法(将 Google 地图嵌入网络浏览器控件,并挂钩网络浏览器呈现)来实现获取图像。
任何有这方面经验的人,或者最好的选择是什么? 特别是如果有选项可以将 Google 地球实施到我自己的桌面应用程序中,并且能够对其进行控制。
【问题讨论】:
-
Google 不想免费赠送任何东西。所以他们禁用了使用没有密钥的软件(如 c#)建立的连接。
标签: c# google-maps google-maps-api-3 maps integration