【发布时间】:2011-01-12 07:42:39
【问题描述】:
我正在开发一个将使用多个域的 CMS,并且我必须在我的页面中只使用一个谷歌地图脚本。
有没有办法在没有 API 密钥的情况下使用谷歌地图?
否则,它不起作用?
【问题讨论】:
-
如果您的 CMS 用户需要地图,为什么不允许他们指定自己的 API 密钥?
标签: asp.net api google-maps key
我正在开发一个将使用多个域的 CMS,并且我必须在我的页面中只使用一个谷歌地图脚本。
有没有办法在没有 API 密钥的情况下使用谷歌地图?
否则,它不起作用?
【问题讨论】:
标签: asp.net api google-maps key
根据Google Maps API FAQ页面:
Google Maps JavaScript API v3 和 Maps Image API 以前不需要 API 控制台密钥。旧版应用程序仍支持此功能以确保向后兼容性,但不再建议用于新应用程序。
我还要指出 their examples 也不包含 API 密钥:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
就像 Chris B 在他的回答中所说,如果用于商业用途,您确实需要一个 Google Maps API Premier 密钥。请参阅有关该主题的FAQ。
【讨论】:
如果您想在 JavaScript 中更改 API 密钥(适用于 V2),您可以编写一个包含用于启动地图的代码的包装器。然后 JS 代码根据主机名输出一个 API 密钥:
if (document.domain=="[HOSTNAME 1]") {
document.write('[JS TAG to Google Maps API with HOSTNAME 1 Key]')
} else if (document.domain=="[HOSTNAME 2]") {
document.write('[JS TAG to Google Maps API with HOSTNAME 2 Key]')
等等……
【讨论】:
如here 所述,任何版本的 Google Maps API 都可以做到这一点。基本上,如果在没有键的情况下使用地图,地图实际上唯一要做的就是显示一个抱怨它的警报。如果您捕获警报并阻止其显示,则地图将正常运行。
【讨论】:
Google Maps API V3 不需要密钥。
但是,与 V2 一样,您只能将其用于免费且可公开访问的应用程序。如果是商业产品,你需要Google Maps API Premier
【讨论】:
你能像这样将 ApplicationSetting 添加到你的 Web.Config 文件吗
<appSettings>
<add key="GoogleMapAPI" value="XXXXXX" />
</appSettings>
每个域?
然后将其添加到您的页面
<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=<%=ConfigurationManager.ApplicationSettings["GoogleMapAPI"] %>&hl=de"
您可以使用您的数据库或主机标头设置类似的东西来管理每个域的每个密钥。
【讨论】:
相当有信心,要使用他们的 API,您需要一个 API 密钥。
也许Google maps premiere可以坚持你的具体问题?
【讨论】: