步骤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,