从用户位置

时间:2017-01-09 19:15:12

标签: javascript google-maps google-maps-api-3

我正在使用Google Maps JavaScript API v3,而我正在使用Places API返回自动填充结果。我想将Autocomplete返回的结果绑定到用户所在的城市,如果我有他们的位置。

我知道如果我实际上对地理位置进行地理编码,例如“休斯顿,德克萨斯州,美国”,那么Google Maps API的部分响应将包含LatLngBounds,我可以将其用作Autocomplete之类的边界{1}}。但是,因为我通过浏览器获取用户的位置,所以我只有一组纬度和经度坐标。最直接的解决方案是反转地理编码用户的位置以获取其近似区域,然后对该区域进行地理编码以获得LatLngBounds。然而,这似乎非常低效。如果没有这种来回地理编码,是否有更有效的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

我发现你可以从Circle对象获取边界,即使没有在地图上实际绘制它。您只需创建一个以用户位置为中心的新Circle,其半径为您想要边界的距离。例如,这会创建一个半径为25英里(40,233.6米)的圆圈:

var circle = new google.maps.Circle({ radius: 40233.6, center: userLatLng });

然后,您只需致电getBounds

autocomplete.setBounds(circle.getBounds());

它不是完全我正在寻找的东西,但它运作良好。