高德地图的定位
2015-11-27 15:12
211 查看
public class MainActivity extends Activity implements LocationSource,AMapLocationListener{
private AMap amap; //高德地图Api(就是高德地图)
private MapView mapview;
private OnLocationChangedListener changedListener;
private LocationManagerProxy managerProxy;//折线的关键类为 Polyline
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapview=(MapView)findViewById(R.id.map);
mapview.onCreate(savedInstanceState);
init();
}
private void init(){
if(amap==null){
amap=mapview.getMap();
setUpMap();
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mapview.onResume();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mapview.onPause();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mapview.onDestroy();
}
private void setUpMap(){
amap.setLocationSource(this);//定位监听
amap.getUiSettings().setMyLocationButtonEnabled(true);
amap.setMyLocationEnabled(true);
amap.setMyLocationType(AMap.LOCATION_TYPE_MAP_ROTATE);
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(AMapLocation arg0) {
// TODO Auto-generated method stub
if(changedListener!=null&&arg0!=null){
if(arg0.getAMapException().getErrorCode()==0){
changedListener.onLocationChanged(arg0);
}
}
}
//激活定位
@Override
public void activate(OnLocationChangedListener arg0) {
// TODO Auto-generated method stub
changedListener=arg0;
if(managerProxy==null){
managerProxy=LocationManagerProxy.getInstance(this);
managerProxy.requestLocationData(LocationProviderProxy.AMapNetwork, 60*1000, 10, this);
}
}
//停止定位
@Override
public void deactivate() {
// TODO Auto-generated method stub
changedListener=null;
if(managerProxy!=null){
managerProxy.removeUpdates(this);
managerProxy.destroy();
}
managerProxy=null;
}
}
//xml文件
<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"/>
//权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="1a1786d95eee2887a266d2c65778d52e" />s
private AMap amap; //高德地图Api(就是高德地图)
private MapView mapview;
private OnLocationChangedListener changedListener;
private LocationManagerProxy managerProxy;//折线的关键类为 Polyline
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapview=(MapView)findViewById(R.id.map);
mapview.onCreate(savedInstanceState);
init();
}
private void init(){
if(amap==null){
amap=mapview.getMap();
setUpMap();
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mapview.onResume();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mapview.onPause();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mapview.onDestroy();
}
private void setUpMap(){
amap.setLocationSource(this);//定位监听
amap.getUiSettings().setMyLocationButtonEnabled(true);
amap.setMyLocationEnabled(true);
amap.setMyLocationType(AMap.LOCATION_TYPE_MAP_ROTATE);
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(AMapLocation arg0) {
// TODO Auto-generated method stub
if(changedListener!=null&&arg0!=null){
if(arg0.getAMapException().getErrorCode()==0){
changedListener.onLocationChanged(arg0);
}
}
}
//激活定位
@Override
public void activate(OnLocationChangedListener arg0) {
// TODO Auto-generated method stub
changedListener=arg0;
if(managerProxy==null){
managerProxy=LocationManagerProxy.getInstance(this);
managerProxy.requestLocationData(LocationProviderProxy.AMapNetwork, 60*1000, 10, this);
}
}
//停止定位
@Override
public void deactivate() {
// TODO Auto-generated method stub
changedListener=null;
if(managerProxy!=null){
managerProxy.removeUpdates(this);
managerProxy.destroy();
}
managerProxy=null;
}
}
//xml文件
<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"/>
//权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="1a1786d95eee2887a266d2c65778d52e" />s
相关文章推荐
- Flume入门样例
- jQuery-noConflict()
- 日志显示错误NIC Agent
- 平台客户端日志查看说明
- 第十六节 协议栈LED实验
- Oracle 定义变量总结(转)
- 红黑树的C++实现(1)
- 【Java并发编程一】线程安全
- C#中将图片文件转化为二进制数组-用于数据库存储
- 使用Word2010直接编辑、发布博客→博客园cnblogs
- JS判断是否是微信页面,判断手机操作系统(ios或android)并跳转到不同下载页面
- 第十三周项目三 Dijkstra算法的验证
- 迎接新的时代——读《工业4.0时代,怎样为孩子筹备未来的教育?》有感
- 【poj 2451】半平面交
- 表达式、运算符、语句
- 优惠券读服务优化
- jdbc 连接oracle单机与集群配置
- sql查询数据库中所有表的记录条数,以及占用磁盘空间大小。
- nginx配置
- Sqlserver查询表结构信息-字段说明、类型、长度等信息