📌  相关文章
📜  如何在Android的Google地图上添加多个标记?(1)

📅  最后修改于: 2023-12-03 14:52:39.833000             🧑  作者: Mango

如何在Android的Google地图上添加多个标记?

介绍

Google地图是一个基于Web的交互式地图服务,提供路线规划、交通状态、地理编码、定位等功能,广泛应用于行业领域,例如航空航天、交通运输、气象等。

在Android应用程序中,我们可以使用Google地图API添加地图视图以及各种覆盖物,例如标记、信息窗口、线条等。

本文将介绍如何在Android的Google地图上添加多个标记。

实现步骤
步骤1:添加依赖库

在项目的build.gradle文件中添加Google地图依赖库:

dependencies {
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
}
步骤2:获取Google地图API密钥

要使用Google地图API,您需要获取开发者密钥。

请参阅获取Google Maps API密钥获取详细认证信息。

步骤3:在布局文件中添加地图视图

在布局文件中引入地图视图:

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
步骤4:获取地图对象

在Activity或Fragment中获取地图对象:

private GoogleMap mMap;

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    // 在这里添加标记
}
步骤5:添加标记

通过调用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"));
步骤6:设置缩放级别和地图中心

通过调用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地图上添加多个标记。通过本文的指南,您现在可以在自己的应用程序中轻松添加标记,并将它们放在适当的位置上。