我正在使用Mapbox Android SDK在Android中开发地图应用。我想在地图上点击时在地图上创建一个弹出窗口。请注意,不得使用任何图标或标记。弹出窗口应出现在敲击位置的针尖处。经度和纬度的位置信息可以从以下代码中获得。
@Override
public void onTapMap(MapView pMapView, ILatLng pPosition) {
String coords = String.format("Zoom = %f, Lat = %f, Lon = %f", pMapView.getZoomLevel(), pPosition.getLatitude(), pPosition.getLongitude());
String utfGrid = MapboxUtils.getUTFGridString(pPosition, Float.valueOf(pMapView.getZoomLevel()).intValue());
Log.i("TapForUTFGridTestFrag", String.format("coords = '%s', UTFGrid = '%s'", coords, utfGrid));
Toast.makeText(getApplicationContext(), coords + " == " + utfGrid, Toast.LENGTH_LONG).show();
}
我实际上想要获得以下设计。红色弹出窗口的下针将位于攻丝位置。
答案 0 :(得分:2)
使用Mapbox Android SDK 4.0.0测试版,您可以通过使用监听器获取用户点击的latlng位置:
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(@NonNull MapboxMap mapboxMap) {
mapboxMap.setOnMapClickListener(new MapboxMap.OnMapClickListener() {
@Override
public void onMapClick(@NonNull LatLng point) {
mapboxMap.addMarker(new MarkerOptions()
.icon(/* make a marker bubble icon */)
.position(point));
}
});
}
});
make a bubble icon
评论的意思是创建一个看起来像这里的图标的位图drawable:
希望这有帮助并随意提出任何问题
答案 1 :(得分:0)
我相信您想在该位置添加自定义标记,可以通过以下指南进行演示:
绘制标记 https://www.mapbox.com/android-sdk/marker/
提示:使用以下方法:
mapView.addMarker(new MarkerOptions()
.position(new LatLng(48.13863, 11.57603))
.title("Hello World!")
.snippet("Welcome to my marker."));
由于您不希望在那里有标记符号,我建议您使用创建自定义标记指南并只传递一个完全透明的标记: