【问题标题】:Displaying stores based on zoom level from Google Maps API根据 Google Maps API 的缩放级别显示商店
【发布时间】:2018-09-10 02:15:21
【问题描述】:

我正在尝试在下面创建以下算法,但我不确定如何开始,因此这里没有任何代码:

目标是显示(例如来自 Google 地图的 30 家商店)。我目前在应用程序中使用 Google Maps API。

算法:
根据缩放级别检索 30 个不同的商店。

示例 1:如果缩放为 10 (City Zoom),则以该特定缩放显示 30 家不同的商店。这些商店将覆盖地图上不同的纬度和经度。 (理想情况下覆盖用户当前在地图上看到的东西的北、南、东和西)。

示例 2:如果用户缩放到 15 级,(Street Zoom) 它也会以该特定缩放显示这 30 家商店。如果不是 30 个商店,它将显示 (

任何帮助将不胜感激。如果需要更多澄清,请发表评论,我将对帖子进行修改。

【问题讨论】:

    标签: java android google-maps


    【解决方案1】:
    1. 在显示商店之前,您需要隐藏“标准”标记,例如thisJozef 的答案:

    只需修改地图样式即可:Adding a Styled Map

    1. 像这样创建 JSON 文件 src\main\res\raw\map_style.json

    [
      {
        featureType: "poi",
        elementType: "labels",
        stylers: [
          {
            visibility: "off"
          }
        ]
      }
    ]
    
    1. 将地图样式添加到您的GoogleMap

    googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(getContext(), R.raw.map_style));
    
    1. 您可以使用Google Places API 中的Place Search 并通过附近的URL 请求获取兴趣点列表:

      https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=<LAT_LNG>&types=point_of_interest&radius=<RADIUS_IN_METERS>&sensor=false&key=<YOUR_APP_KEY>

    解析它。

    注意!附近的 URL 请求仅返回 20 个位置,要加载更多数据,您应该使用来自响应的 next_page_token 标记的字符串值,并通过 pagetoken 参数将其传递给下一个请求:

    https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=<LAT_LNG>&types=point_of_interest&radius=<RADIUS_IN_METERS>&sensor=false&key=<YOUR_APP_KEY>&pagetoken=<TOKEN_FOR_NEXT_PAGE_FROM_next_page_token_TAG_OF_RESPONSE>
    
    1. 您可以通过rating 或其他字段或其他自定义条件从列表中选择30 家商店。似乎,如果用户将缩放比例从 10 更改为 15,则所有以缩放 10 显示的商店都应该仍然可见。

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 1970-01-01
      • 2014-01-15
      • 2014-03-18
      • 2011-03-15
      • 2013-04-30
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      相关资源
      最近更新 更多