📅  最后修改于: 2023-12-03 14:52:39.833000             🧑  作者: Mango
Google地图是一个基于Web的交互式地图服务,提供路线规划、交通状态、地理编码、定位等功能,广泛应用于行业领域,例如航空航天、交通运输、气象等。
在Android应用程序中,我们可以使用Google地图API添加地图视图以及各种覆盖物,例如标记、信息窗口、线条等。
本文将介绍如何在Android的Google地图上添加多个标记。
在项目的build.gradle文件中添加Google地图依赖库:
dependencies {
implementation 'com.google.android.gms:play-services-maps:17.0.0'
}
要使用Google地图API,您需要获取开发者密钥。
请参阅获取Google Maps API密钥获取详细认证信息。
在布局文件中引入地图视图:
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
在Activity或Fragment中获取地图对象:
private GoogleMap mMap;
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// 在这里添加标记
}
通过调用GoogleMap对象的addMarker()方法添加标记,并设置标记的位置和标题:
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions()
.position(sydney)
.title("Marker in Sydney"));
要添加多个标记,您可以在onMapReady()方法中多次调用addMarker()方法:
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
LatLng melbourne = new LatLng(-37, 144);
mMap.addMarker(new MarkerOptions().position(melbourne).title("Marker in Melbourne"));
LatLng brisbane = new LatLng(-27, 153);
mMap.addMarker(new MarkerOptions().position(brisbane).title("Marker in Brisbane"));
通过调用GoogleMap对象的moveCamera()方法设置缩放级别和地图中心:
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
LatLngBounds bounds = new LatLngBounds.Builder().include(sydney).build();
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 10));
public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
LatLng melbourne = new LatLng(-37, 144);
mMap.addMarker(new MarkerOptions().position(melbourne).title("Marker in Melbourne"));
LatLng brisbane = new LatLng(-27, 153);
mMap.addMarker(new MarkerOptions().position(brisbane).title("Marker in Brisbane"));
LatLngBounds bounds = new LatLngBounds.Builder().include(sydney).include(melbourne).include(brisbane).build();
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 10));
}
}
本文介绍了如何在Android的Google地图上添加多个标记。通过本文的指南,您现在可以在自己的应用程序中轻松添加标记,并将它们放在适当的位置上。