android开发:我想做一个Google Maps API展示地图界面然后选择一个地点拿到这个地点的经纬度的功能有示例代码或git地址吗
是的,以下是一个使用Google Maps API展示地图界面,并选择一个地点并获取经纬度的示例代码:
- 在你的项目的build.gradle文件中添加Google Maps API的依赖:
implementation 'com.google.android.gms:play-services-maps:17.0.0'
- 在你的AndroidManifest.xml文件中添加以下权限和Google Maps API密钥:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR_API_KEY" />
- 创建一个包含MapView的布局文件(例如,activity_main.xml):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
- 在你的活动(Activity)中,添加以下代码:
import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
private MapView mapView;
private GoogleMap googleMap;
private LatLng selectedLatLng;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(this);
}
@Override
public void onMapReady(@NonNull GoogleMap map) {
googleMap = map;
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
selectedLatLng = latLng;
googleMap.clear();
googleMap.addMarker(new MarkerOptions().position(latLng));
}
});
}
@Override
public void onResume() {
super.onResume();
mapView.onResume();
}
@Override
public void onPause() {
super.onPause();
mapView.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
// 在这里获取选择的地点的经纬度
private void getSelectedLocation() {
if (selectedLatLng != null) {
double latitude = selectedLatLng.latitude;
double longitude = selectedLatLng.longitude;
Toast.makeText(this, "Latitude: " + latitude + ", Longitude: " + longitude, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Please select a location", Toast.LENGTH_SHORT).show();
}
}
}
请确保将YOUR_API_KEY替换为您的Google Maps API密钥。
这是一个简单的示例,你可以根据你的需求进行进一步的自定义和扩展。你可以在GitHub上搜索类似的示例项目,如"Google Maps API Android",以获取更多示例代码和项目
原文地址: http://www.cveoy.top/t/topic/iiUG 著作权归作者所有。请勿转载和采集!