2012-09-27 42 views
22

嗨,我使用此代碼在谷歌地圖中使用獲取方向。但是當我從其他機器運行它顯示錯誤無效api鍵。如何在沒有api鍵的情況下使用相同的地圖。如何使用沒有API密鑰的谷歌地圖

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAuPsJpk3MBtDpJ4G8cqBnjRRaGTYH6UMl8mADNa0YKuWNNa8VNxQCzVBXTx2DYyXGsTOxpWhvIG7Djw" type="text/javascript"></script> 
    <style type="text/css"> 
    body { 
     background:#FFE1C7; 
     font-family: Verdana, Arial, sans serif; 
     font-size: 11px; 
     margin: 2px; 
    } 
table.directions th { 
     background-color:#EEEEEE; 
    } 

    img { 
     color: #000000; 
    } 
    </style> 
    <script type="text/javascript"> 

    var map; 
    var gdir; 
    var geocoder = null; 
    var addressMarker; 

    function initialize() { 
     if (GBrowserIsCompatible()) {  
     map = new GMap2(document.getElementById("map_canvas")); 
     gdir = new GDirections(map, document.getElementById("directions")); 
     GEvent.addListener(gdir, "load", onGDirectionsLoad); 
     GEvent.addListener(gdir, "error", handleErrors); 

     setDirections("Bangalore", "Mysore", "en_US"); 
     } 
    } 

    function setDirections(fromAddress, toAddress, locale) { 
     gdir.load("from: " + fromAddress + " to: " + toAddress, 
       { "locale": locale }); 
    } 

    function handleErrors(){ 
    if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS) 
     alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code); 
    else if (gdir.getStatus().code == G_GEO_SERVER_ERROR) 
     alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code); 

    else if (gdir.getStatus().code == G_GEO_MISSING_QUERY) 
     alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code); 

    // else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS) <--- Doc bug... this is either not defined, or Doc is wrong 
    //  alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code); 

    else if (gdir.getStatus().code == G_GEO_BAD_KEY) 
     alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code); 

    else if (gdir.getStatus().code == G_GEO_BAD_REQUEST) 
     alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code); 

    else alert("An unknown error occurred."); 
    } 

    function onGDirectionsLoad(){ 
     // Use this function to access information about the latest load() 
     // results. 

     // e.g. 
     // document.getElementById("getStatus").innerHTML = gdir.getStatus().code; 
     // and yada yada yada... 
    } 

    </script> 

誰能幫我...在此先感謝..

+0

看到這個... http://stackoverflow.com/questions/2187010/using-google-maps-without-api-keys – nKandel

回答

26

你需要你的API從V2改變爲V3,由於谷歌地圖版本3不要求API密鑰

檢查this了..

寫你script作爲

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 

編輯:這個答案現在是過時的。您現在需要有一個API密鑰才能使用Google地圖。見下面的評論。

+0

我也嘗試了將其更改爲v3,但是當我將其更改爲v3時,地圖消失。 –

+1

你必須稍微改變你的代碼......因爲調用Map的語法是在Google Map v3中改變的...... http://www.birdtheme.org/useful/v3tool.html將幫助你根據V3改變你的代碼.. – Usman

+0

其實傳感器不是必需的。 – candlejack

16

現在您必須擁有API密鑰。您可以在Google開發者控制檯中生成該文件。 這裏是LINK的解釋。

+1

有關信息,我找到了一種解決方法,可以繼續使用Google Maps API而不使用密鑰:http://stackoverflow.com/questions/38148097/google-maps- API-無鑰匙/ 38809129#38809129 – baptx