繁体   English   中英

在没有加载地图的情况下,获取给定边界框的Google Map边界?

[英]Get Google Map bounds, given a bounding box, without loading map?

我正在构建商店查找器,并希望实现以下工作流程:

  1. 用户输入位置
  2. 我们使用Google Geocoder对它进行地理编码
  3. 我们检查边界框的地理编码结果
  4. 我们将地图放大以适应指定范围,并查询这些范围内的商店
  5. 如果地图范围内有商店,则将它们全部显示在地图上
  6. 但是,如果现在在地图边界框内没有商店,则将地图进一步缩小一级,然后重复(5),直到找到一些商店

上面的方法很好,但是如果在找到某些商店之前地图实际上并未移动,则最好使用UX。

因此,是否可以按以下方式查询Google Maps: 给定边界框,我们是否可以找到包含特定边界框的正确缩放的Google Map的边界,而无需实际加载Google Map?

我不确定是否可行,因为我猜这取决于页面中map div的宽度。

geocoder.geocode( {'address': search_text }, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.panTo(results[0].geometry.location);
    map.fitBounds(results[0].geometry.bounds);
    var bounds_to_check_for_stores = map.getBounds();
    // QUESTION: get bounds_to_check_for_stores without the three preceding steps?
    } 
 }

google.maps.LatLngBounds api-doc具有一个方法: extend(point:LatLng) ,该方法可让您扩展边界以确保将边界调整为包括作为参数传递的LatLng点。 extend方法返回LatLngBounds已经调整。

这样,您可以:

  1. 扩展地理编码查询的半径,直到找到合适的商店。
  2. 查找您要使用的最近的商店或商店组。
  3. 从地图检索当前边界: Map.getBounds()
  4. 使用在步骤2中选择的商店的.geometry.location属性,调用LatLngBounds.extend调整边界。
  5. 调用Map.panToBounds可以更改地图的视口,从而使用户的体验变得简单,因为将仅对视图执行一次更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM