放置API textSearch vs nearbySearch

时间:2013-11-02 16:05:34

标签: javascript google-maps google-places-api bounding-box

这里我有一个演示使用nearbySearch来搜索框内的对象(路由盒子实​​用程序):

http://www.geocodezip.com/v3_SO_RouteBoxerPlaces.html 代码:

function findPlaces(boxes,searchIndex) {
   var request = {
       bounds: boxes[searchIndex],
       types: ["gas_station"]
   };
   // alert(request.bounds);
   service.radarSearch(request, function (results, status) {
   if (status != google.maps.places.PlacesServiceStatus.OK) {
     alert("Request["+searchIndex+"] failed: "+status);
     return;
   }
   // alert(results.length);
   document.getElementById('side_bar').innerHTML += "bounds["+searchIndex+"] returns "+results.length+" results<br>"
   for (var i = 0, result; result = results[i]; i++) {
     var marker = createMarker(result);
   }
   searchIndex++;
   if (searchIndex < boxes.length) 
     findPlaces(boxes,searchIndex);
   });
}

现在,当我尝试使用textSearch代替nearbySearch时,我看到带有textSearch和查询的代码搜索框外的对象... http://jsbin.com/ifUZIti/1/edit

function findPlaces(boxes,searchIndex) {
   var request = {
       bounds: boxes[searchIndex],
       query: 'gas station'
   };
   // alert(request.bounds);
   service.textSearch(request, function (results, status) {
   if (status != google.maps.places.PlacesServiceStatus.OK) {
     alert("Request["+searchIndex+"] failed: "+status);
     return;
   }
   // alert(results.length);
   document.getElementById('side_bar').innerHTML += "bounds["+searchIndex+"] returns "+results.length+" results<br>"
   for (var i = 0, result; result = results[i]; i++) {
     var marker = createMarker(result);
   }
   searchIndex++;
   if (searchIndex < boxes.length) 
     findPlaces(boxes,searchIndex);
   });
}

当我尝试使用textSearch代码搜索并查找定义框外的对象时,textSearchnearbySearch之间有什么区别?为什么?这有什么问题? 使用nearbySearch一切正常,但我不能使用NearbySearch查询,所以我必须使用textSearch,但在框外使用textSearch脚本搜索对象? 我怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果你在高级渲染中放大看起来像是在盒子之外的地方,你会发现它们都在盒子里面,或者只是在盒子外面。它看起来并不像第一次脸红那么糟糕。请参阅my version of your code以查看结果。