最新基于高德地图的android进阶开发(4)GPS定位之POI(Point of interesting)兴趣点源码简介
2016-07-19 16:43
573 查看
1.跑了一下高德提供的POI的源码,感觉还是比较简单的,没有达到想要的效果,还有改进的空间,后面会继续更新。
2.下面直接上代码,已经注释好了
main.java
package com.dragon.arnav.basicFuction.poi; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.Gravity; import android.widget.TextView; import com.amap.api.maps.AMap; import com.amap.api.maps.AMapUtils; import com.amap.api.maps.MapView; import com.amap.api.maps.model.BitmapDescriptorFactory; import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; import com.amap.api.maps.model.NaviPara; import com.amap.api.maps.model.Poi; import com.dragon.arnav.R; /** * This file created by dragon on 2016/7/19 15:15,belong to com.dragon.arnav.basicFuction.poi . */ public class PoiClick extends Activity implements AMap.OnPOIClickListener,AMap.OnMarkerClickListener { private MapView mMapView; private AMap mAMap; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.poiclick); mMapView = (MapView) findViewById(R.id.map); mMapView.onCreate(savedInstanceState); mAMap = mMapView.getMap(); // 设置监听时间 mAMap.setOnPOIClickListener(this); mAMap.setOnMarkerClickListener(this); } //地图POI点击回调 @Override public void onPOIClick(Poi poi){ mAMap.clear(); MarkerOptions markerOptions = new MarkerOptions(); // 获取坐标 markerOptions.position(poi.getCoordinate()); // 下面就是用来显示一个图标 TextView textView = new TextView(getApplicationContext()); textView.setText("到"+poi.getName()+"去"); textView.setGravity(Gravity.CENTER); textView.setTextColor(Color.BLACK); textView.setBackgroundResource(R.drawable.custom_info_bubble); markerOptions.icon(BitmapDescriptorFactory.fromView(textView)); mAMap.addMarker(markerOptions); } // 点击Marker图标后的执行的操作 @Override public boolean onMarkerClick(Marker marker){ // 构造导航参数 NaviPara naviPara = new NaviPara(); // 设置终点位置 naviPara.setTargetPoint(marker.getPosition()); // 设置导航策略,这里是避免拥堵 naviPara.setNaviStyle(AMapUtils.DRIVING_AVOID_CONGESTION); try{ // 这里调用高德地图来导航 AMapUtils.openAMapNavi(naviPara,getApplicationContext()); } catch (com.amap.api.maps.AMapException e){ // 如果你没安装,这会触发这个异常 AMapUtils.getLatestAMapApp(getApplicationContext()); } mAMap.clear(); return false; } // 下面这些没什么要说的 @Override protected void onResume(){ super.onResume(); mMapView.onResume(); } @Override protected void onPause(){ super.onPause(); mMapView.onPause(); } @Override protected void onSaveInstanceState(Bundle outState){ super.onSaveInstanceState(outState); mMapView.onSaveInstanceState(outState); } @Override protected void onDestroy(){ super.onDestroy(); mMapView.onDestroy(); } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <com.amap.api.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" > </com.amap.api.maps.MapView>
3.注意添相应的权限,下面是效果图。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories