android百度地图开发

使用android开发百度地图需要事先在百度地图开发者平台上注册账号并下载百度地图相关的工具包,之后配置到自己的程序中,具体可参考https://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5,环境配置好后即可开始百度地图的开发.下面介绍一下百度地图简单的使用。

一地图显示

1在布局文件中添加百度地图控件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".Activity.ShowLocationNormalActivity"android:orientation="vertical"><include layout="@layout/title_layout"/><com.baidu.mapapi.map.MapViewandroid:id="@+id/baiduMapViewShowLocation"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="6"></com.baidu.mapapi.map.MapView></LinearLayout>

2.显示地图:

public class ShowLocationNormalActivity extends AppCompatActivity
{private MapView mapViewShowLocation;private BaiduMap baiduMap;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);//获取百度地图运行所需环境SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_show_location_normal);mapViewShowLocation=findViewById(R.id.baiduMapViewShowLocation);baiduMap=mapViewShowLocation.getMap();baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);}
}

注意:SDKInitializer.initialize(getApplicationContext());要在
setContentView(R.layout.activity_show_location_normal);
前调用

二将地图缩放到某个位置

            double xCoordinate= -2850406.0172;double yCoordinate= 4651849.7088;double zCoordinate= 3292951.6637;//将空间直角坐标转换为大地测量坐标Ecef2LlaConverter.GeodeticLlaValues geodeticLlaValues=Ecef2LlaConverter.convertECEFToLLAByIterations(xCoordinate,yCoordinate,zCoordinate);//将弧度制角度转换为角度制角度double latitudeDegree=geodeticLlaValues.latitudeRadians/Math.PI*180.0;double longitudeDegree=geodeticLlaValues.longitudeRadians/Math.PI*180.0;//将WGS84坐标转换为BD09LatLng latLngWGS84=new LatLng(latitudeDegree,longitudeDegree);CoordinateConverter coordinateConverter=new CoordinateConverter().from(CoordinateConverter.CoordType.GPS).coord(latLngWGS84);LatLng latLngBD09=coordinateConverter.convert();MapStatusUpdate mapStatusUpdate;mapStatusUpdate = MapStatusUpdateFactory.newLatLng(latLngBD09);//将地图显示为第一个计算出的位置处baiduMap.setMyLocationEnabled(true);baiduMap.animateMapStatus(mapStatusUpdate);//缩放地图大小mapStatusUpdate=MapStatusUpdateFactory.zoomTo(18f);baiduMap.animateMapStatus(mapStatusUpdate);

注意LatLng使用角度制,百度地图使用的坐标系为BD09,直接由GNSS算得到的坐标若为WGS84则需进行坐标转换.

baiduMap.setMyLocationEnabled(true);至关重要,否则后续对地图操作将会无效。

三显示标记点

 BitmapDescriptor bitmapDescriptor= BitmapDescriptorFactory.fromResource(R.drawable.ic_action_location_on);OverlayOptions overlayOptions=new MarkerOptions().icon(bitmapDescriptor).position(latLngBD09);baiduMap.addOverlay(overlayOptions);

R.drawable.ic_action_location_on为自己下载的icon资源,通过调整改变量以实现不同样式的标记点,
推荐一个不错的icon下载连接:
https://romannurik.github.io/AndroidAssetStudio/icons-actionbar.html#source.type=clipart&source.clipart=drive_file_rename_outline&source.space.trim=0&source.space.pad=0&name=ic_action_drive_file_rename_outline&theme=custom&color=rgba(33%2C%20150%2C%20243%2C%200.6)

四显示轨迹

List<LatLng> points=new ArrayList<LatLng>();
//
//这里未对points赋值,读者可根据自己需要将轨迹上的点依次add进points
//
OverlayOptions polyLineOverLay=new PolylineOptions().width(5).color(0xAAB23AEE).points(points);
baiduMap.addOverlay(polyLineOverLay);

color(0xAAB23AEE)表示轨迹颜色
0xAAB23AEE表示16进制的ARGB颜色
0x表示16进制标识
AA表示透明度
B23AEE对应的RGB值

清空原有的标记点和轨迹

baiduMap.clear();

像标记点,轨迹等在百度地图上统一称为覆盖物,更多的百度地图使用参考百度地图官方开发者平台。

android百度地图开发相关推荐

  1. Android 百度地图开发(二)

    前面我们一起了解了百度地图的申请与集成Android 百度地图开发(一),今天我们接着来学习百度地图. 今天主要来了解如下问题: 1.百度地图的生命周期控制 上一篇张我们已经在布局文件里增加了mapV ...

  2. Android studio百度地图SDK开发 2020最新超详细的Android 百度地图开发讲解(3) 路线规划步行骑行驾车路线规划

    2020最新超详细的Android 百度地图开发讲解(3) 路线规划步行骑行驾车路线规划 开发前配置,显示基本地图,实时定位等查看之前代码,此博客紧接上一博客:https://blog.csdn.ne ...

  3. Android百度地图开发入门教程

    Android百度地图开发入门教程 1.平台注册登录 2.创建应用 3.Android studio配置 4.代码编写 5.最终效果(建议真机) 1.平台注册登录 登录百度地图开放平台网站注册并登录 ...

  4. [android] 百度地图开发 (三).定位当前位置及getLastKnownLocation获取location总为空问题

           前一篇百度地图开发讲述"(二).定位城市位置和城市POI搜索",主要通过监听对象MKSearchListener类实现城市兴趣点POI(Point of Intere ...

  5. Android百度地图开发(二)定位之自动定位及标注(及定位几日内瓦或坐标4.9E-324问题)

    接上篇Android百度地图开发(一)之Hello BaiduMap 1.环境配置: 新增权限如下 <!-- 这个权限用于进行网络定位--> <uses-permission and ...

  6. android 百度地图开发 别人用不了,Android百度地图开发的那些不足之处

    Android百度地图开发的那些不足之处,最近做的项目中百度地图是很重要的一个模块,其中实现了定位.自定义Marker图标.线路规划.SuggestionSearch检索.地图截图以及导航等功能.因为 ...

  7. 超详细的Android百度地图开发:在APP上定位并显示出来

    超详细的Android百度地图开发:在APP上定位并显示出来 一 写在前面 二 注册百度开发者账户.申请API KEY 三.代码实现 四.问题 五.总结 一 写在前面 由于项目所需,我需要在手机APP ...

  8. [android] 百度地图开发 (二).定位城市位置和城市POI搜索

    一. 百度地图城市定位和POI搜索知识       上一篇文章"百度地图开发(一)"中讲述了如何申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述如何定位城市位置.定位 ...

  9. [android] 百度地图开发 (一).申请AK显示地图及解决显示空白网格问题

        最近做android百度地图,但是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so显示百度地图时总是遇到问题--只显示网格而没有显示地图,网络 ...

最新文章

  1. “人工智能=统计+计算”:专家表示人工智能无需“智能”
  2. 数组 = 容器
  3. pytorch指定gpu
  4. CTFshow 文件上传 web157
  5. 运营商线路细分_呼叫中心各种线路的区分
  6. java点到曲线的距离公式,使用Haversine的距离公式获取经度和纬度的距离
  7. 安装后添加没有class library_Catalina的L/E Kext驱动安装方式
  8. C语言试题四十七之程序定义了N×M的二维数组,并在主函数中自动赋值。请编写函数function(int a[N][M], int m),该函数的功能是:将数组右上半三角元素中的值乘以m。
  9. 工业机器人维保调查表_《工业机器人系统集成及维护》课程建设调研报告
  10. Cping (cmd shell )版本
  11. 初出茅庐的小李第84篇博客之驱动WS2812B灯带(一)
  12. opencv实时录像+视频打码
  13. Blender学习笔记:齿轮模型建立
  14. linux进程操作日志文件,我使用过的Linux命令之tailf - 跟踪日志文件/更好的tail -f版本...
  15. 获取百度网盘直链下载链接的方法
  16. 实验一:常用网络命令操作
  17. L298N和TB6612FNG模块控制直流电机
  18. AUTOSAR —— CAN网络管理(CanNm)
  19. 禁止QQ迷你首页运行【转】
  20. BIOS学习之Beyong Bios

热门文章

  1. 树莓派控制舵机云台SG90
  2. 利用InstallAnywhere 打包java程序
  3. 类的简单名称、类全名、二进制名、全限定名、描述符
  4. 有哪些好用的pdf阅读软件?这样查阅不出错
  5. Codeforces Round #670 (Div. 2) D. Three Sequences
  6. 域名被微信屏蔽拦截的原因和防封方案
  7. python出现Non-ASCII character '\xe7' in file ex6.py on line 1, but no encoding declare错误
  8. 【Vue3】滑动验证组件 | 滑动验证
  9. 7年Java游戏后端,被淘汰辛酸史
  10. C++11拉达姆lamda的使用以及注意事项