protected void createMap(Bundle savedInstanceState) {
//展示地图容器
_mapView.onCreate(savedInstanceState);
//得到amap对象
_amap = _mapView.getMap();
//默认显示实时交通信息
_amap.setTrafficEnabled(true);
}
//启动定位服务器
protected void doLocation()
{
//1 创建一个客户端定位句柄
_amapLocationClient = new AMapLocationClient(getApplicationContext());
//1.5 给定位客户端设置一些属性
_amapLocationOption = new AMapLocationClientOption();
//每个5s定位一次
_amapLocationOption.setInterval(3000);
//_amapLocationOption.setOnceLocation(true);
//将option设置给client对象
_amapLocationClient.setLocationOption(_amapLocationOption);
//2 给客户端句柄设置一个listenner来处理服务器返回的定位数据
_amapLocationClient.setLocationListener(new AMapLocationListener() {
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
//onLocationChanged 就是如果服务器给客户端返回数据,调用的回调函数
//aMapLocation 就是服务器给客户端返回的定位数据
if (aMapLocation != null) {
//服务器是有响应的
if(aMapLocation.getErrorCode() == 0) {
//定位成功,aMapLocation获取数据
Log.e(“Amap”, "location succ address = "+ aMapLocation.getAddress());
Log.e(“Amap”, "city = "+ aMapLocation.getCity());
Log.e(“Amap”, "longtitude = " + aMapLocation.getLongitude());
Log.e(“Amap”, "latitude = " + aMapLocation.getLatitude());
if (isAddSelfMarker == false) {
//在此位置添加一个标记
addMarkerToMap(aMapLocation.getLatitude(), aMapLocation.getLongitude());
isAddSelfMarker = true;
//以自我为中心展示地图
moveMap(aMapLocation.getLatitude(), aMapLocation.getLongitude());
}
if (_startPoint == null) {
//得到乘客的起始坐标点
_startPoint = new LatLonPoint(aMapLocation.getLatitude(),aMapLocation.getLongitude());
}
//设置乘客源地址信息
_tv_srcAddr.setText(aMapLocation.getAddress());
_city = aMapLocation.getCity();
}
else {
//定位失败,
Log.e(“Amap”, "location error, code = "+ aMapLocation.getErrorCode()+
", info = "+ aMapLocation.getErrorInfo());
}
}
}
});
//3 开启定位服务
_amapLocationClient.startLocation();
}
//开启POI兴趣点搜索
protected void doSerarchPOI() {
_bt_startOrder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//开始搜索POI兴趣点
Log.e(“Amap”, “button onclick”);
//拿到用户搜索地址的关键字
String dstAddr = _attv_dstAddr.getText().toString();
//开始POI搜索
// 1 创建一个搜索的条件对象 query
PoiSearch.Query query = new PoiSearch.Query(dstAddr, “”, _city);
// 2 创建一个POISearch句柄和query关联
PoiSearch poiSearch = new PoiSearch(getApplicationContext(), query);
// 3 给search绑定一个回调函数
poiSearch.setOnPoiSearchListener(new PoiSearch.OnPoiSearchListener() {
@Override
public void onPoiSearched(PoiResult poiResult, int i) {
//处理得到的POI兴趣点集合 poiResult
if (i != 1000) {
Log.e(“Amap”, "poi Search error code = "+ i);
return ;
}
//搜索成功
List poiList = poiResult.getPois();
for (int index = 0; index < poiList.size(); index++) {
//此时 表示处理每个已经搜索到的兴趣点
Log.e(“Amap”, “搜索到的兴趣点有”);
PoiItem item = poiList.get(index);
Log.e(“Amap”, “poi title =” + item.getTitle()+
"latitude = " +item.getLatLonPoint().getLatitude()+
"longitude = "+ item.getLatLonPoint().getLongitude());
//给每个搜索到的标记点画一个标记
addMarkerToMap(item.getLatLonPoint().getLatitude(),
item.getLatLonPoint().getLongitude());
//默认以第一个兴趣点为我们坐标点
_endPoint = new LatLonPoint(item.getLatLonPoint().getLatitude(),
item.getLatLonPoint().getLongitude());
drawRouteLine();
if (index == 0) {
break;
}
}
}
@Override
public void onPoiItemSearched(PoiItem poiItem, int i) {
}
});
// 4 启动搜索
poiSearch.searchPOIAsyn();
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_passenger);
initUI();
createMap(savedInstanceState);
doLocation();
doSerarchPOI();
}
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后
题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
【Android进阶学习视频】、【全套Android面试秘籍】
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展
和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
[外链图片转存中…(img-q6ic9mEF-1711721497132)]
【Android进阶学习视频】、【全套Android面试秘籍】
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展