使用Mapbox SDK在Android Map App中生成弹出窗口

时间:2016-03-22 19:13:07

标签: android dictionary mapbox

我正在使用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();
            }

我实际上想要获得以下设计。红色弹出窗口的下针将位于攻丝位置。

Sample

2 个答案:

答案 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:

enter image description here

希望这有帮助并随意提出任何问题

答案 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."));

由于您不希望在那里有标记符号,我建议您使用创建自定义标记指南并只传递一个完全透明的标记:

https://www.mapbox.com/android-sdk/custom-marker-icon/