2016-07-06 122 views
2

我使用谷歌地圖API自動填充的地方。谷歌地圖api autocomplete在localhost工作,但不能在服務器上工作

Everythings在localhost中工作,但是當我發佈並上傳到服務器上時,它不起作用......爲什麼會發生?沒有顯示地點的下拉菜單。

這裏是我的HTML:

<input type="text" id="autocomplete"> 

這裏是我的JS:

<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script> 
    <script> 
var autocomplete; 

function initialize() { 

    autocomplete = new google.maps.places.Autocomplete(
    (document.getElementById('autocomplete')), { 
     types: ['(cities)'], 
     componentRestrictions: { country: "ph" } 
    }); 
    google.maps.event.addListener(autocomplete, 'place_changed', function() { 
    fillInAddress(); 
    }); 

} 

placeParser = function(place){ 
    result = {}; 
    for(var i = 0; i < place.address_components.length; i++){ 
    ac = place.address_components[i]; 
    result[ac.types[0]] = ac.long_name; 
    } 
    return result; 
}; 


function fillInAddress() { 

    var place = autocomplete.getPlace(); 
    document.getElementById("latitude").value = place.geometry.location.lat(); 
    document.getElementById("longitude").value = place.geometry.location.lng(); 

    components = placeParser(place); 

} 

initialize(); 

回答

4

有3個問題

  1. 你是不知道,如果在調用initialize地圖-API已經被加載,刪除初始化的通話,並使用callback -parameter地圖的API,而不是

  2. 地圖的API現在需要密鑰
    因爲看起來有些情況下(無證),它可能沒有密鑰工作(我猜是來自本地主機的請求和來自已經使用maps-API的域的請求之前),可能你的域名不是符合這一標準,所以你應該/必須use a key

  3. (此外),我稱之爲由谷歌的錯誤: 因爲它看來,現在使用的地方庫的要求Places API的Web服務也已被激活用於一個項目(在它僅足以激活Maps JavaScript API)之前已被激活

+0

我試過把這個關鍵與我測試這與我的兩個網站。第一個很漂亮,當我在我的第二個網站上使用它時,它沒有問題。我想知道爲什麼代碼是相同的,並且不會像地點下拉菜單那樣顯示地圖。 –

+0

您是否啓用Places API Web服務?您是否爲這兩個網站添加了查閱者?你能發佈網址嗎? –

+0

先生這是我的第一個網站的鏈接,我放置谷歌地圖自動完成http://filipinohomes.com/search/ ....然後這是我把自動完成http://leuteriorealty.com的第二個網站/ search/..代碼是相同的...昨天自動完成功能在第二個網站上不起作用,當我今天早上嘗試時它已經工作,我不知道爲什麼。 –

相關問題