📅  最后修改于: 2023-12-03 14:52:39.846000             🧑  作者: Mango
如果你正在开发一个需要展示地图且需要添加自定义标记的Android应用,那么Google地图是一个完美的选择。Google地图API提供了许多功能,可以帮助开发者添加自定义标记和从旧有标记中删除标记等等。在下文中,我们将介绍如何在Android的Google地图中添加自定义标记。
dependencies {
implementation 'com.google.android.gms:play-services-maps:17.0.1'
}
创建一个地图显示的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"/>
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地图中添加自定义标记。希望这篇文章能够对你有用!