首页 > android > android安卓使用高德地图进行全球定位,获取经度纬度

android安卓使用高德地图进行全球定位,获取经度纬度

2015年1月17日 发表评论 阅读评论

一开始使用百度,结果百度对全球的经度纬度尽然获取不怎么准确

使用谷歌?google被国内屏蔽了,开发很是烦恼啊

不如用高德吧,那么开始:

在配置文件的application段中增加:

<meta-data
android:name=”com.amap.api.v2.apikey”
android:value=”a64effd1b198f8d33d757a0c3f3d71f8″ />

其中a64effd1b198f8d33d757a0c3f3d71f8为你在高德申请的key

将Android_Location_V1.3.1.jar下载放到libs目录

导入权限(请全部导入,否则会导致有时候能获得有时候不行):

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

完成参考代码如下:

package com.testAmapLocation;

import android.app.Activity;
import android.location.Location;
import android.os.Bundle;
import android.widget.Toast;

import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationListener;
import com.amap.api.location.LocationManagerProxy;
import com.amap.api.location.LocationProviderProxy;

public class StartActivity extends Activity implements AMapLocationListener {

//定位相关
private LocationManagerProxy mLocationManagerProxy;
private static final int MINTIME = 60 * 1000;//最小请求秒
private static final int MININSTANCE = 15;//最小请求间隔距离米
private String locationCountry = “”;
private String locationCity = “”;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
initAMap();
}

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
destoryLocationManager();
}

//清除定位监听,建议在activity的onPause/onDestroy中使用
public void destoryLocationManager() {
mLocationManagerProxy.removeUpdates(this);//移除定位请求
mLocationManagerProxy.destroy();//销毁定位
}

/** 初始化定位 */
public void initAMap() {
mLocationManagerProxy = LocationManagerProxy.getInstance(this);
//是否采用gps定位
mLocationManagerProxy.setGpsEnable(false);
// 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用removeUpdates()方法来取消定位请求
// 在定位结束后,在合适的生命周期调用destroy()方法
// 其中如果间隔时间为-1,则定位只定一次,
// 在单次定位情况下,定位无论成功与否,都无需调用removeUpdates()方法移除请求,定位sdk内部会移除
mLocationManagerProxy.requestLocationData(
LocationProviderProxy.AMapNetwork, MINTIME, MININSTANCE, this);
}

private void locationUpdate(double latitude, double longitude) {
//http://maps.googleapis.com/maps/api/geocode/json?latlng=49.229222,-123.004605&sensor=true_or_false
locationCountry = “china”;
locationCity = “hefei”;

Toast.makeText(StartActivity.this,
“国家:” + latitude + “\n城市:” + longitude, Toast.LENGTH_LONG)
.show();
}

@Override
public void onLocationChanged(AMapLocation amapLocation) {
if (amapLocation != null
&& amapLocation.getAMapException().getErrorCode() == 0) {
/*
* 经度amapLocation.getLatitude();
* 纬度amapLocation.getLongitude();
* * 定位方式amapLocation.getProvider()
* 地址amapLocation.getAddress()
* 国家amapLocation.getCountry()
* 省amapLocation.getProvince()
* 城市amapLocation.getCity()
* 区getDistrict()
* 街道amapLocation.getRoad()
* poi名称amapLocation.getPoiName()
* 城市区号amapLocation.getCityCode()
* 邮编amapLocation.getAdCode()
* */
locationUpdate(amapLocation.getLatitude(),
amapLocation.getLongitude());
}
else {
//错误信息
//amapLocation.getAMapException().getErrorCode()
}

}

@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub

}

@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub

}
}

分类: android 标签: , , ,
  1. 本文目前尚无任何评论.
您必须在 登录 后才能发布评论.
css.php