Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图API地理位置文本搜索位置详细信息_Javascript_Google Maps Api 3_Google Places Api - Fatal编程技术网

Javascript 谷歌地图API地理位置文本搜索位置详细信息

Javascript 谷歌地图API地理位置文本搜索位置详细信息,javascript,google-maps-api-3,google-places-api,Javascript,Google Maps Api 3,Google Places Api,我使用谷歌地图api地理位置通过latlng获取用户位置,然后使用此位置文本搜索该区域周围的“高尔夫”位置。现在,我想从这个基本的地图/标记视图开始,在用户单击特定地图标记时提供位置详细信息。问题是,当我单击标记时,没有响应。我觉得我是一个变量,但我真的需要一些帮助来确定为什么细节和infowindo不能在单击时显示 我还看到谷歌正在使用placeID返回详细信息?但不确定这是否适用于maps API详细信息请求 提前感谢您的帮助 功能成功(位置){ var s=document.queryS

我使用谷歌地图api地理位置通过latlng获取用户位置,然后使用此位置文本搜索该区域周围的“高尔夫”位置。现在,我想从这个基本的地图/标记视图开始,在用户单击特定地图标记时提供位置详细信息。问题是,当我单击标记时,没有响应。我觉得我是一个变量,但我真的需要一些帮助来确定为什么细节和infowindo不能在单击时显示

我还看到谷歌正在使用placeID返回详细信息?但不确定这是否适用于maps API详细信息请求

提前感谢您的帮助

功能成功(位置){
var s=document.querySelector(“#status”);
如果(s.className=='success'){
//不确定为什么我们在FF中两次碰到这个,我认为这与缓存结果返回有关
返回;
}
s、 innerHTML=“找到你了!”;
s、 className='success';
var mapcanvas=document.createElement('div');
mapcanvas.id='mapcanvas';
mapcanvas.style.height='400px';
mapcanvas.style.width='560px';
document.querySelector('article').appendChild(mapcanvas);
var latlng=新的google.maps.latlng(position.coords.latitude,position.coords.longitude);
变量myOptions={
缩放:10,
中心:拉特林,
mapTypeControl:false,
导航控制选项:{
样式:google.maps.NavigationControlStyle.SMALL
},
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“mapcanvas”),myOptions);
var服务;
var信息窗口;
var请求={
地点:拉丁美洲,
半径:“3200”,
问题:“高尔夫”
};
infowindow=new google.maps.infowindow();
服务=新的google.maps.places.PlacesService(地图);
文本搜索(请求、回调);
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
对于(var i=0;i
html,body,#mapcanvas{
高度:400px;
宽度:400px;
边际:0px;
填充:0px
}

查找您的位置:检查。。。


我在这里看到两个可能的问题:

var request = { reference: position.reference };
service.getDetails(request, function(details, status) {
  • 此处的
    position
    是一个
    LatLng
    ,它没有
    reference
    属性。因此,您的
    getDetails
    调用失败
  • 传递给
    getDetails
    的回调函数忽略
    状态
    ,因此您不会注意到它报告的任何错误
  • 综合起来,这就是为什么什么都没有发生

    修复:将整个
    PlaceResult
    (即
    results[i]
    ,而不是
    results[i].geometry.location
    )传递到
    createMarker
    ,以便您可以访问位置和位置ID

    顺便提一下:不推荐使用
    参考
    。改用
    placeId