📌  相关文章
📜  如何在Android的Google地图中添加自定义标记?(1)

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

如何在Android的Google地图中添加自定义标记?

如果你正在开发一个需要展示地图且需要添加自定义标记的Android应用,那么Google地图是一个完美的选择。Google地图API提供了许多功能,可以帮助开发者添加自定义标记和从旧有标记中删除标记等等。在下文中,我们将介绍如何在Android的Google地图中添加自定义标记。

首先,你需要在工程中导入Google地图API
dependencies {
    implementation 'com.google.android.gms:play-services-maps:17.0.1'
}
创建一个地图显示的Fragment

创建一个地图显示的Fragment并在XML文件中定义它。如下是一个基本的XML布局代码:

<fragment
    android:id="@+id/map_display"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
然后,在Java文件中抓取Fragment
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
    private GoogleMap mMap;
    private SupportMapFragment mapFragment;

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

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
    }
}

在此示例中,我们在onCreate()方法中通过抓取Fragment来获取GoogleMap。然后,我们将OnMapReadyCallback接口传递给getMapAsync()方法,以确保地图加载完毕后调用onMapReady()方法。在onMapReady()方法中,我们将Google Map对象赋值给mMap变量。

现在,你可以在地图上添加一个标记
LatLng position = new LatLng(37.4219999,-122.0840575); // 经纬坐标
String title = "Google Maps";  // 信息窗口标题
String snippet = "Google Maps SDK"; // 信息窗口内容
MarkerOptions options = new MarkerOptions();
options.position(position)
        .title(title)
        .snippet(snippet);
Marker marker = mMap.addMarker(options);

上述代码将添加一个标记。使用位置对象LatLng,创建MarkerOptions对象并将它的标题和信息窗口内容设置为支持Google Maps SDK的值。最后通过使用addMarker()方法在地图上添加标记。

展示一个自定义布局的标记

如果你想展示一个自定义布局的标记,只需重载MarkerOptions类的icon()方法,并使用一个BitmapDescriptor对象。如下:

BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap);
MarkerOptions options = new MarkerOptions()
        .position(position)
        .title(title)
        .snippet(snippet)
        .icon(bitmapDescriptor);
Marker marker = mMap.addMarker(options);

在上面的代码中,您需要定义一个BitmapDescriptor对象,并将其传递给MarkerOptions对象的icon()方法。

到目前为止,你了解了如何在Android的Google地图中添加自定义标记。希望这篇文章能够对你有用!