2010-02-02 55 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鍵如果我不提供它將如何工作? –