2010-02-02 136 views
10

我正在开发一个CMS,它将使用多个域名,我必须在我的页面中只使用一个谷歌地图脚本。使用不带API密钥的谷歌地图?

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

否则,它不工作?

+4

为什么不允许CMS的用户在他们需要地图时指定他们自己的API密钥? –

回答

1

充分相信,为了使用他们的API,您需要一个API密钥。

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

+1

在新的V3 API中,您不再需要密钥。 – wenbert

+0

...除非您尝试在Android应用程序的Web视图中加载Web地图应用程序。 – topwik

1

你可以添加一个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" 

你可以搭起类似使用您的数据库或主机头管理每个域的每个关键的东西。

15

Google Maps API V3不需要密钥。

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

+0

如果您尝试在android web视图中加载带有goolge web地图的网页,则您需要一个有效的密钥。而你用于android地图视图的密钥将不起作用。 – topwik

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]') 

等等

2

这是可能与谷歌地图API的任何版本,如所描述here。基本上,如果在没有钥匙的情况下使用,地图实际上会做的唯一一件事是显示一个警告,抱怨它。如果您陷入警报并阻止显示该警报,则该地图将正常运行。

这里举例:http://codethink.no-ip.org/mapHacks.html

4

按照Google Maps API FAQ页:

的谷歌地图的JavaScript API V3和Maps API的图像之前并不需要的API控制台密钥。遗留应用程序仍支持这种功能,以确保向后兼容性,但不再推荐用于新应用程序。

我还指出,their examples不包括API密钥之一:

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script> 

克里斯一样的B他的回答说,你需要有一个Google Maps API Premier关键如果它用于商业用途。关于这个问题,请参阅FAQ

+1

现在需要使用api key, 你能否用信息更新答案关于新的api键如果我不提供它将如何工作? –