使用没有API密钥的谷歌地图?

问题描述 投票:10回答:6

我正在开发一个使用多个域的CMS,我必须在我的页面中只使用一个谷歌地图脚本。

有没有办法在没有API密钥的情况下使用谷歌地图?

否则,它不起作用?

asp.net api google-maps key
6个回答
15
投票

Google Maps API V3不需要钥匙。

但是,与V2一样,您只能将它用于免费且可公开访问的应用程序。如果它是商业产品,你需要Google Maps API Premier


4
投票

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

就像克里斯B在他的回答中所说,如果是商业用途,你需要有一个Google Maps API Premier钥匙。请参阅有关该主题的FAQ


2
投票

这可以使用任何版本的Google Maps API,如here所述。基本上,如果没有按键使用地图,地图实际上唯一能做的就是显示一个抱怨它的警报。如果您捕获警报并阻止其显示,则地图将正常运行。

示例:http://codethink.no-ip.org/mapHacks.html


1
投票

相当有信心,为了使用他们的API,您需要一个API密钥。

也许Google maps premiere可以坚持你的具体问题?


1
投票

您可以像这样在Web.Config文件中添加ApplicationSetting吗?

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

您可以使用数据库或主机标头来管理类似的内容,以管理每个域的每个密钥。


1
投票

如果要在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]')

等等...

© www.soinside.com 2019 - 2024. All rights reserved.