Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图API-多关键字就地搜索

Javascript 谷歌地图API-多关键字就地搜索,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,是否可以使用Google Maps JavaScript API v3在一个位置搜索请求中搜索多个单独的关键字 在GooglePlacesAPI文档中,它声明可以使用多个关键字 ?关键字=剧院+健身房 但这在JavaScript API中不起作用。我试过: function performSearch() { var request = { location: map.center, radius: '500', keyword: 'theater+gym+tacos

是否可以使用Google Maps JavaScript API v3在一个位置搜索请求中搜索多个单独的关键字

在GooglePlacesAPI文档中,它声明可以使用多个关键字

?关键字=剧院+健身房

但这在JavaScript API中不起作用。我试过:

function performSearch() {
  var request = {
    location: map.center,
    radius: '500',
    keyword: 'theater+gym+tacos',
    rankBy: 'distance'
  };
  service.radarSearch(request, callback);
}
…并且不返回每个关键字的位置。有人知道如何搜索多个关键字吗


注意:我试图在一个请求中搜索多个单独的关键字,而不是带有空格的短语。

我相信这与。请将该问题标记为星号以跟踪进度。

看起来答案是“否”(至少在目前,您可以请求一个

一个解决方法是发送三个单独的查询,每个关键字一个。对于3个关键字应该可以,在某个时候你会遇到查询速率限制

  var request = {
    location: pyrmont,
    radius: 500,
    keyword: 'theater'
  };
  infowindow = new google.maps.InfoWindow();
  var service = new google.maps.places.PlacesService(map);
  service.nearbySearch(request, callback);
  var request2 = {
    location: pyrmont,
    radius: 500,
    keyword: 'gym'
  };
  var service2 = new google.maps.places.PlacesService(map);
  service2.nearbySearch(request2, callback);
  var request3 = {
    location: pyrmont,
    radius: 500,
    keyword: 'tacos'
  };
  var service3 = new google.maps.places.PlacesService(map);
  service3.nearbySearch(request2, callback);

代码片段:

var映射;
var信息窗口;
函数初始化(){
var pyrmont=new google.maps.LatLng(-33.8665433151.1956316);
map=new google.maps.map(document.getElementById('map-canvas'){
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:皮尔蒙特,
缩放:15
});
var请求={
地点:皮尔蒙特,
半径:500,
关键词:“剧院”
};
infowindow=new google.maps.infowindow();
var service=newgoogle.maps.places.PlacesService(地图);
服务.nearbySearch(请求、回调);
变量请求2={
地点:皮尔蒙特,
半径:500,
关键词:“健身房”
};
var service2=新的google.maps.places.PlacesService(地图);
服务2.nearbySearch(请求2,回调);
变量请求3={
地点:皮尔蒙特,
半径:500,
关键词:“玉米饼”
};
var service3=新的google.maps.places.PlacesService(地图);
服务3.nearbySearch(请求2,回调);
}
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
对于(var i=0;i
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}

您是否尝试使用类型选项。如果使用类型,您可以获得多个位置信息

请查看可能的和 像这样试试

function performSearch() {
  var request = {
    location: map.center,
    radius: '500',
    types: ['movie_theater', 'gym'],
    rankBy: 'distance'
  };
  service.radarSearch(request, callback);
}
我不知道“tacos”是哪种类型。请支持该类型并给出“tacos”类型的值


如果您在使用Google place API时遇到任何问题,请告知我,使布尔搜索看起来像这样:

var request = {
            location: /*your location*/,
            radius: /*your radius*/,              
            keyword: "(cinema) OR (theater)"           
        };

您可以使用或,但要尊重大小写!!

编辑:这在一开始似乎是可行的,但更多的结果是不可靠和不可预测的。我们最终无法在我们的场景中以这种方式使用API

我使用web服务,但我认为它应该适用于所有API访问点。我花了很多组合进行测试,但我最终实现了API所需的括号和引号,以使多个单词或条件工作

例如,在url参数形式中:


关键词=(“地名1”)或(“地名2”)或(“地名3”)

当我试图找出如何在一个请求中使用多个关键字时,我遇到了同样的问题。起初@netoale的回答帮助了我,但这已经不可能了。在谷歌出现一些一般性问题后,我在支持中询问,一名员工写信给我,说可以用一个简单的“|”链接多个关键字

例如:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=lat,lng&key=API_KEY&keyword=theater|castle|park&rankby=distance

现在对我有效。

您是否尝试使用空格而不是“+”?或者使用带+”的空格?是的,我尝试了两者。它们都返回较少的结果,并且通常偏向于一个关键字。您尝试过使用
%20
吗?@duncan使用该符号也不起作用:(该问题涉及短语的空格,我的问题是多个单独的关键字的空格。谢谢,类型接受多个值,但我正在尝试使用关键字实现这一点。这不起作用。一些指向文档的链接会很有帮助。这对我不起作用。是否有关于此的文档?是否有用于此的文档。是否有人用或条件实现了这一点?太棒了!经过测试,似乎很有效…伙计,你刚刚保存了我的客户端x8请求…现在世界变得更好了…这不是一直都有效,也没有文档,我想说这只是巧合而已。你能为这个例子提供Js fiddle吗?这会很有帮助的,是吗不可靠或不可预测。我编辑了答案。虽然这可能可行,但附近的搜索文档()中不支持这一点,并且可能会停止工作。此外,使用此解决方案,您可能无法获得足够的结果来查询您尝试查询的每种类型。