根据Google Maps API中的缩放级别显示商店

时间:2018-09-08 23:09:52

标签: java android google-maps

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

目标是展示(例如,来自Google Maps的30家商店)。我目前在该应用中使用Google Maps API。

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

示例1:如果缩放比例为10 (City Zoom),则以该特定缩放比例显示30个不同的商店。这些商店将覆盖不同的经纬度,并且距离地图很长。 (最好从用户当前在地图上看到的内容覆盖北,南,东和西)。

示例2:如果用户将级别缩放到(Street Zoom)https://awesomewm.org/apidoc/index.html会以该特定缩放比例显示这30个商店。如果没有30家商店,它将显示(<30)。

任何帮助将不胜感激。如果需要更多说明,请发表评论,我将对该职位进行修改。

1 个答案:

答案 0 :(得分:1)

  1. 在显示商店之前,您需要隐藏“标准”标记,例如在thisJozef答案中:
  

您只需修改地图样式即可完成操作:Adding a Styled Map

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

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

googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(getContext(), R.raw.map_style));
  1. 您可以使用Place Search中的Google Places API并通过附近的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>

解析它。

NB!附近的网址请求仅返回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的商店都应该仍然可见。