首页 / 浏览问题 / 移动GIS / 问题详情
android 根据经纬度添加CallOut,图片被挤压
30EXP 2021年11月18日

获取当前位置经纬度添加CallOut

CallOut callout = new CallOut(this);
callout.setBackgroundResource(R.mipmap.map_marker_1);
callout.setCustomize(true);// 是否自定义背景图片
callout.setLocation(point2D.getX(), point2D.getY());// 设置显示位置
mapView.addCallout(callout,"当前位置");

设置的map_marker_1这个图片,显示的时候明显被压扁了很多,这个怎么解决?

1个回答

您好,这个您先看下导入进来的图片是否已经被压缩呢?你可以自己写一个view来存放这张图片,然后使用callout.setContentView(android.view.View contentView)添加对应的图片
9,197EXP 2021年11月18日
这样我也试了,那更加的偏了。

直接拿这个坐标显示,定位到非洲那边去了,

使用你们的接口转换一下,只是有偏差
直接拿这个坐标定位到非洲是因为坐标系不一致,坐标是经纬度的但是地图是投影坐标系的。您那边在切换地铁的时候是否将地图关闭重新添加的百度地图呢?可以获取当前地图的坐标系看下是地理坐标系还是投影坐标系的

切换地图是这样的

m_mapControl.getMap().getLayers().clear();

if (baiduDatasource == null) {
    DatasourceConnectionInfo dcInfo = new DatasourceConnectionInfo();
    dcInfo.setAlias("BaiDu");
    dcInfo.setEngineType(EngineType.BaiDu);
    baiduDatasource = m_woWorkspace.getDatasources().open(dcInfo);
}
int count = baiduDatasource.getDatasets().getCount();
Log.e("123", "count:" + count);

m_mapControl.getMap().getLayers().add(baiduDatasource.getDatasets().get(0), true);

m_mapControl.getMap().setScale(1.0641132515917893E-5);
m_mapControl.getMap().setCenter(new Point2D(1.257386650713317E7, 2924949.646010306));
m_mapControl.getMap().refresh();

百度地图的当前的坐标系是

PCS_USER_DEFINED
地图不能这么切换,需要先将地图关闭再添加,因为添加一个数据到地图中,地图就会有一个原始的坐标系。您那边可以直接添加百度地图然后定位看下是否准确

我不切换地图,默认加载百度地图,定位后还是不准确,和以前 的一样,坐标系也是和以前一样的

PCS_USER_DEFINED
...