我正在使用Google Maps JavaScript API v3,而我正在使用Places API返回自动填充结果。我想将Autocomplete
返回的结果绑定到用户所在的城市,如果我有他们的位置。
我知道如果我实际上对地理位置进行地理编码,例如“休斯顿,德克萨斯州,美国”,那么Google Maps API的部分响应将包含LatLngBounds
,我可以将其用作Autocomplete
之类的边界{1}}。但是,因为我通过浏览器获取用户的位置,所以我只有一组纬度和经度坐标。最直接的解决方案是反转地理编码用户的位置以获取其近似区域,然后对该区域进行地理编码以获得LatLngBounds
。然而,这似乎非常低效。如果没有这种来回地理编码,是否有更有效的方法来实现这一目标?
答案 0 :(得分:0)
我发现你可以从Circle
对象获取边界,即使没有在地图上实际绘制它。您只需创建一个以用户位置为中心的新Circle
,其半径为您想要边界的距离。例如,这会创建一个半径为25英里(40,233.6米)的圆圈:
var circle = new google.maps.Circle({ radius: 40233.6, center: userLatLng });
然后,您只需致电getBounds
:
autocomplete.setBounds(circle.getBounds());
它不是完全我正在寻找的东西,但它运作良好。