AndroidStudio中如何查找附近的地点并将它们作为标记显示出来?
创始人
2024-08-21 02:30:07
0

步骤1:添加Google Maps API

在Android Studio中的build.gradle(module)文件中添加Google Maps API依赖项:

dependencies {
  implementation 'com.google.android.gms:play-services-maps:17.0.0'
}

步骤2:获取用户位置权限

在AndroidManifest.xml文件中添加以下代码以获取用户位置权限:


步骤3:创建GoogleMap对象

在activity中创建GoogleMap对象:

GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
            .getMapAsync(this);
}

步骤4:获取附近的地点

使用Google Places API获取附近的地点:

private void getNearbyPlaces(LatLng latLng) {

    String type = "restaurant"; //查找餐馆
    double radius = 1000; //1000米以内

    String url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=" +
            latLng.latitude + "," + latLng.longitude +
            "&radius=" + radius +
            "&type=" + type +
            "&key=" + API_KEY;

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null,
            response -> {
                try {
                    JSONArray jsonArray = response.getJSONArray("results");
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                        JSONObject location = jsonObject.getJSONObject("geometry").getJSONObject("location");
                        double lat = location.getDouble("lat");
                        double lng = location.getDouble("lng");
                        String name = jsonObject.getString("name");
                        MarkerOptions markerOptions = new MarkerOptions();
                        markerOptions.position(new LatLng(lat, lng));
                        markerOptions.title(name);
                        mMap.addMarker(markerOptions);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }, error -> {
                Log.e(TAG,

相关内容

热门资讯

4分钟总结!一起宁德钓蟹黑科技... 4分钟总结!一起宁德钓蟹黑科技,wpk代打是真的(详细透视辅助app教程);一起宁德钓蟹黑科技软件透...
5分钟了解!哥哥跑得快怎么赢,... 5分钟了解!哥哥跑得快怎么赢,约局互娱辅助(详细透视辅助神器教程)关于哥哥跑得快怎么赢机制的,其中提...
2分钟方法!开心游戏跑得快有挂... 2分钟方法!开心游戏跑得快有挂吗,传奇扑克辅助(详细透视辅助助手教程);一、开心游戏跑得快有挂吗有挂...
2分钟教学!福建天天开心辅助工... 2分钟教学!福建天天开心辅助工具,wepoke软件收费(详细透视辅助app教程)1、每一步都需要思考...
2分钟教程!腾讯广东麻将助赢神... 2分钟教程!腾讯广东麻将助赢神器,nzt德州辅助软件(详细透视辅助黑科技教程);腾讯广东麻将助赢神器...
七分钟辅助挂!哈局十三张怎么赢... 七分钟辅助挂!哈局十三张怎么赢,德扑之星可以看底牌(详细透视辅助插件教程)相信很多朋友都在电脑上玩过...
5分钟技巧!传送屋激k有挂吗,... 传送屋激k有挂吗新手教程相关信息汇总(需添加指定薇757446909获取下载链接);5分钟技巧!传送...
三分钟教程!钱塘十三水有挂是真... 三分钟教程!钱塘十三水有挂是真的吗,wpk线上实战(详细透视辅助app教程)1、很好的工具软件,可以...
2分钟教程!多乐够级外挂,德州... 2分钟教程!多乐够级外挂,德州专用扑克高科技(详细透视辅助挂教程)1、这是跨平台的多乐够级外挂黑科技...
十分钟技巧!情怀古诗词外挂,G... 十分钟技巧!情怀古诗词外挂,GG扑克有多假(详细透视辅助神器教程);建议优先通过情怀古诗词外挂透明挂...