我正在尝试在下面创建以下算法,但不确定如何入门,因此这里没有任何代码:
目标是展示(例如,来自Google Maps的30家商店)。我目前在该应用中使用Google Maps API。
算法:
根据缩放级别检索30个不同的商店。
示例1:如果缩放比例为10 (City Zoom),则以该特定缩放比例显示30个不同的商店。这些商店将覆盖不同的经纬度,并且距离地图很长。 (最好从用户当前在地图上看到的内容覆盖北,南,东和西)。
示例2:如果用户将级别缩放到(Street Zoom),https://awesomewm.org/apidoc/index.html会以该特定缩放比例显示这30个商店。如果没有30家商店,它将显示(<30)。
任何帮助将不胜感激。如果需要更多说明,请发表评论,我将对该职位进行修改。
答案 0 :(得分:1)
您只需修改地图样式即可完成操作: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>
解析它。
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>
rating
或其他字段或其他自定义条件从列表中选择30家商店。而且,如果用户将缩放比例从10更改为15,则所有显示为10的商店都应该仍然可见。