Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 Google地图API-信息窗口显示Google place API信息_Javascript_Angularjs_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript Google地图API-信息窗口显示Google place API信息

Javascript Google地图API-信息窗口显示Google place API信息,javascript,angularjs,google-maps,google-maps-api-3,Javascript,Angularjs,Google Maps,Google Maps Api 3,我不知道该怎么办 我想要的是: 我想展示你可能会发现的信息,如果你去寻找农贸市场的话 我想要一个信息窗口,提供地址,营业时间,可能还有谷歌地图为这项业务提供的其他信息 我现在所拥有的: 我有一个Angular JS代码块,用于填充数组,如下所示: var locations = [ ['Findlay Market', 39.115398, -84.518481, 5], ['Hyde Park Farmers' Market', 39.139601, -84.442496, 4],

我不知道该怎么办

我想要的是: 我想展示你可能会发现的信息,如果你去寻找农贸市场的话

我想要一个信息窗口,提供地址,营业时间,可能还有谷歌地图为这项业务提供的其他信息

我现在所拥有的: 我有一个Angular JS代码块,用于填充数组,如下所示:

var locations = [
  ['Findlay Market', 39.115398, -84.518481, 5],
  ['Hyde Park Farmers' Market', 39.139601, -84.442496, 4],
  ['Lettuce Eat Well Farmers' Market', 39.166134, -84.611613, 3],
  ['College Hill Farm Market', 39.195641, -84.545453, 2],
  ['Anderson Farmers' Market', 39.078364, -84.350539, 1]
];
然后我使用信息窗口显示农贸市场的名称

我知道我可以在我的数据库中添加一个新的表,用于数小时和其他信息,并使用它创建一个角度JS卡,我可以在信息窗口中显示它。。。但我希望有一种方法可以使用GoogleMapAPI和GooglePlacesAPI来获取这些信息,而不是将其存储在我的数据库中

感谢uksz,我能够使用下面的代码来帮助我获得所需的信息

<!DOCTYPE html>
<html>
    <head>
    <title>Place details</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <style>
        html, body, #map-canvas {
            height: 100%;
            margin: 0px;
            padding: 0px
        }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&libraries=places"></script>
    <script>
    function initialize() {
        var map = new google.maps.Map(document.getElementById('map-canvas'), {
    center: new google.maps.LatLng(39.115398, -84.518481),
    zoom: 15
});

var request = {
    location: map.getCenter(),
    radius: '500',
    query: 'Findlay Market'
};

var service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);

function callback(results, status) {
    if (status == google.maps.places.PlacesServiceStatus.OK) {
        var marker = new google.maps.Marker({
            map: map,
            place: {
                placeId: results[1].place_id,
                location: results[1].geometry.location
            }
        });
        var infowindow = new google.maps.InfoWindow();
        google.maps.event.addListener(marker, 'click', function() {
            var content = results[1].name + '<br>' + 
                          results[1].formatted_address + '<br>' +
                          results[1].opening_hours + '<br>' +
                          results[1].place_id + '<br>';
            infowindow.setContent(content);
            infowindow.open(map, this);
            });
        }
    }
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
    <body>
        <div id="map-canvas"></div>
    </body>
</html>

地点详情
html,正文,#地图画布{
身高:100%;
边际:0px;
填充:0px
}
函数初始化(){
var map=new google.maps.map(document.getElementById('map-canvas'){
中心:新google.maps.LatLng(39.115398,-84.518481),
缩放:15
});
var请求={
位置:map.getCenter(),
半径:'500',
查询:“芬德利市场”
};
var service=newgoogle.maps.places.PlacesService(地图);
文本搜索(请求、回调);
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
var marker=new google.maps.marker({
地图:地图,
地点:{
placeId:results[1]。place\u id,
位置:结果[1]。几何体。位置
}
});
var infowindow=new google.maps.infowindow();
google.maps.event.addListener(标记'click',函数(){
var content=results[1]。名称+'
'+ 结果[1]。格式化的_地址+'
'+ 结果[1]。营业时间+'
'+ 结果[1]。放置_id+'
; infowindow.setContent(content); 打开(地图,这个); }); } } } google.maps.event.addDomListener(窗口“加载”,初始化);
所以我不知道我是否正确理解了你的问题,但是如果你只想显示来自Google Places API的信息,你可以使用他们的getDetails()函数。这将返回一个对象。如果不想存储对象,为什么不在用户每次切换视图后删除对象呢?这样,您就不会将此信息存储在数据库中,至少不会永久存储

祝你过得愉快

以下是他们的完整getDetails()手册:


谢谢,我可以使用它更好地找到解决方案。