我正在开发一个使用多个域的CMS,我必须在我的页面中只使用一个谷歌地图脚本。
有没有办法在没有API密钥的情况下使用谷歌地图?
否则,它不起作用?
Google Maps API V3不需要钥匙。
但是,与V2一样,您只能将它用于免费且可公开访问的应用程序。如果它是商业产品,你需要Google Maps API Premier
根据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。
这可以使用任何版本的Google Maps API,如here所述。基本上,如果没有按键使用地图,地图实际上唯一能做的就是显示一个抱怨它的警报。如果您捕获警报并阻止其显示,则地图将正常运行。
相当有信心,为了使用他们的API,您需要一个API密钥。
也许Google maps premiere可以坚持你的具体问题?
您可以像这样在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"
您可以使用数据库或主机标头来管理类似的内容,以管理每个域的每个密钥。
如果要在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]')
等等...