百度地图攻略2(标注OverlayOptions无法显示)

使用的是百度地图V3_4版本,在为标注设置了LatLng(只包含经纬度)型的position属性,但是标注去不显示在地图上,找了原因后来发现需要先利用CoordinateConverter类将原始LatLng坐标转换一下:

CoordinateConverter converter = new CoordinateConverter();
converter.coord(position);
converter.from(CoordType.COMMON);

LatLng convertLatLng = converter.convert();

返回百度经纬度坐标,使用新的convertLatLng 为标注物设置坐标,标注物即可显示。

### 鸿蒙系统中百度地图大头针功能的实现 在鸿蒙系统中,要实现在百度地图上放置大头针的功能,可以参考百度地图开放平台的相关开发文档以及其提供的API接口。以下是具体的实现方式: #### 1. 注册并获取AK 开发者需要先前往百度地图开放平台 (https://lbsyun.baidu.com/) 进行注册,并创建应用以获取对应的访问密钥(AK)[^2]。 #### 2. 添加依赖项 为了能够调用百度地图的服务,在HarmonyOS项目的`build.gradle`文件中需引入百度地图的SDK库: ```gradle dependencies { implementation 'com.baidu.lbssdk:BaiduLite:最新版本号' } ``` #### 3. 初始化BMapMapView组件 通过初始化`BMapMapView`来加载地图界面,并设置相应的参数以便于后续操作。 ```java import com.baidu.mapapi.map.BMapManager; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.map.TextureMapView; public class MapActivity extends Activity { private TextureMapView mTextureMapView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); BMapManager bMapManager = new BMapManager(this.getApplicationContext()); bMapManager.init(null); setContentView(R.layout.activity_map); mTextureMapView = findViewById(R.id.textureMapView); mTextureMapView.showZoomControls(false); //隐藏缩放控件 // 设置中心点坐标和缩放级别 LatLng centerPoint = new LatLng(纬度, 经度); mTextureMapView.setMapStatus(MapStatusUpdateFactory.newLatLng(centerPoint)); } @Override protected void onDestroy() { super.onDestroy(); mTextureMapView.onDestroy(); } @Override protected void onPause() { super.onPause(); mTextureMapView.onPause(); } @Override protected void onResume() { super.onResume(); mTextureMapView.onResume(); } } ``` #### 4. 放置大头针(Marker) 利用`OverlayOptions`类中的`MarkerOptions`对象定义标记的位置和其他属性,最后将其添加至地图视图中。 ```java // 创建一个图标资源作为marker图片 BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.marker_icon); // 定义经纬度位置 LatLng point = new LatLng(目标地点纬度, 目标地点经度); // 构建MarkerOption实例用于描述marker特性 OverlayOptions option = new MarkerOptions() .position(point) .icon(bitmap) .zIndex(9) .draggable(true); // 将option传递给mapView完成绘制过程 mTextureMapView.addOverlay(option); ``` 以上代码展示了如何向百度地图添加自定义样式的标注(marker),并且支持拖拽调整等功能[^3]。 #### 注意事项 - **权限声明**: 确保已在`config.json`配置文件里申请了网络请求、存储读取等相关权限; - **性能优化**: 对频繁更新的地图数据应考虑缓存机制减少必要的重绘开销;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值