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

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

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

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

示例2:如果用户缩放到15级,(Street Zoom)还将以该特定缩放显示这30个商店。如果没有30家商店,它将显示(
任何帮助将不胜感激。如果需要更多说明,请发表评论,我将对该职位进行修改。

最佳答案

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



  您只需修改地图样式即可完成此操作:Adding a Styled Map
  
  
  创建JSON文件src \ main \ res \ raw \ map_style.json,如下所示:
  
  
  

[
  {
    featureType: "poi",
    elementType: "labels",
    stylers: [
      {
        visibility: "off"
      }
    ]
  }
]

  
  
  将地图样式添加到您的GoogleMap
  
  
  

googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(getContext(), R.raw.map_style));




您可以使用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>


解析它。

注意!附近的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>



您可以通过rating或其他字段或其他自定义条件从列表中选择30家商店。似乎,如果用户将缩放比例从10更改为15,则以缩放比例10显示的所有商店仍然应该可见。

07-24 09:45
查看更多