2016-07-06 102 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/..代码是相同的...昨天自动完成功能在第二个网站上不起作用,当我今天早上尝试时它已经工作,我不知道为什么。 –

相关问题