0

我正在尝试使用 places 库来使用 LatLngBounds 类在两个坐标之间显示标记。如果我在地点搜索请求中注释掉星巴克的名称属性,我可以看到一些标记。有人可以指导我以下内容:

1)目前,我看到的标记位于两个坐标的中间,并且没有沿着边界均匀分布,我假设这会创建一个您必须在其中看到它们的矩形。我认为标记只是为中心计算。

2) 当我提供属性“名称”和值“星巴克”时,我在地图上看不到任何标记。

我认为我的bounds对象很好,因为当我调试时,我能够看到里面的西北和西南坐标。坐标是

  • 34.0522342,-118.2436849 -加利福尼亚州洛杉矶
  • 33.7489954,-84.3879824 -佐治亚州亚特兰大

有人可以指导我哪里出错了。

   function useCordinates(){
        ...
       var defaultBounds = new google.maps.LatLngBounds();

    var places = []; 
    places.push(new google.maps.LatLng(latLongSrc[0],latLongSrc[1]));
    places.push(new google.maps.LatLng(latLongDest[0],latLongDest[1]));

        defaultBounds.extend(places[0]);
        defaultBounds.extend(places[1]);

    //var center = defaultBounds.getCenter(); 
        //defaultBounds.contains(center);

         var request = {
                    //attribute to be commented
        name:"starbucks",
       bounds: defaultBounds,
       types:['establishment']


      };

      service = new google.maps.places.PlacesService(map);
      service.search(request, callback);
    }

     function callback(results, status) {
      if (status == google.maps.places.PlacesServiceStatus.OK) {
        for (var i = 0; i < results.length; i++) {
          var place = results[i];
          createMarker(results[i]);
        }
      }
         }
         function createMarker(place) {
        var placeLoc = place.geometry.location;
        var marker = new google.maps.Marker({
          map: map,
          position: place.geometry.location
        });
    }
4

1 回答 1

2

你的边界是一个非常狭窄的矩形,在洛杉矶和亚特兰大之间延伸(我认为不是你想要的):

http://www.geocodezip.com/v3_GoogleEx_place-search_starbucks.html

针对整个国家/地区的地点请求有问题,您只得到 20 个结果,看起来您可能是正确的,它们以边界为中心,而且似乎没有任何“真正的”星巴克足够靠近那里可以找到:

http://www.geocodezip.com/v3_GoogleEx_place-search_starbucks2.html

但是,如果您在华盛顿州西雅图市搜索,您会得到一些:

http://www.geocodezip.com/v3_GoogleEx_place-search_starbucks3.html

于 2012-09-27T04:12:57.700 回答