-1

如何在角度谷歌地图(AGM)中设置自动缩放,即基于输入的地址它应该自动更改缩放级别,例如,如果我输入国家它应该在我进入特定街道时显示整个国家地图或地址应该显示街道水平。我是根据格式化地址对象的长度来做这个的,还有其他更好的方法吗?

4

1 回答 1

-1

实现这一点的最佳方法是对输入进行地理编码,然后解析地址组件数组的 0 索引,而不是 formatted_address

例如,该算法能够检测到组件中的“street_address”,那么应该有一个等效的缩放级别。关于您的用例,一切都在 address_components 中。您可以为每个设置缩放级别:street_address、locality、administrative_levels、country。

下面是一个示例代码(通过 vanilla javascript):

  geocoder.geocode(
    {
      address: address
    },
    function(results, status) {
      if (status === "OK") {
          results.map(function(value, key){
                console.log(value.address_components[0].types); // 0 index type
          });
      } else {
        alert(
          "Geocode was not successful for the following reason: " +
            status
        );
      }
    }
  );

根据我的观察,这些是每个地址组件的最佳缩放级别。请注意,缩放级别也可能取决于街道/城市/州/国家的大小。

  • street_address = 16 到 18
  • 城市 = 15
  • 状态 = 12
  • 国家 = 5

希望这些信息对您的项目有用并祝您好运!

于 2020-07-02T12:31:06.520 回答