高德完美获取地理位置信息并显示出来~~
来源:互联网 发布:代理商授权书源码系统 编辑:程序博客网 时间:2024/05/16 00:28
// 获取地理位置
private LocationManagerProxy locationManager = null;
private static final long mLocationUpdateMinTime = 1000;
private static final float mLocationUpdateMinDistance = 10.0f;
private LocationHandler locationhandler;
private String strdata;
// 纬度
private Double geoLat;
// 经度
private Double geoLng;
locationManager = new LocationManagerProxy(
SendWbActivity.this,getResources().getString(R.string.map_api));
locationhandler = new LocationHandler();
Thread locationThread = new LocationThread();
locationThread.start();
class LocationThread extends Thread
{
@Override
public void run()
{
// TODO Auto-generated method stub
super.run();
Looper.prepare();
// locationManager = new LocationManagerProxy(SendWbActivity.this,
// getResources().getString(R.string.map_api));
// TODO Auto-generated method stub
for (final String provider : locationManager.getProviders(true))
{
Log.i(TAG, "开启异步线程获取地理位置!");
if (LocationManagerProxy.GPS_PROVIDER.equals(provider)
|| LocationProviderProxy.MapABCNetwork.equals(provider))
{
Log.i(TAG, "开启线程~~~");
locationManager.requestLocationUpdates(provider,
mLocationUpdateMinTime, mLocationUpdateMinDistance,
locationListener);
}
}
Looper.loop();
}
}
LocationListener locationListener = new LocationListener()
{
@Override
public void onProviderDisabled(String provider)
{
}
@Override
public void onProviderEnabled(String provider)
{
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras)
{
}
@Override
public void onLocationChanged(Location location)
{
// TODO Auto-generated method stub
// TODO Auto-generated method stub
if (location != null)
{
geoLat = location.getLatitude();
geoLng = location.getLongitude();
// 经度:longitude 纬度:latitude
/*
* lnglat 经纬度值,采用经度在前,纬度在后,经纬度值之间用“,”隔开的方式
* 如:113.94830703735352,22.54046422124227 reqsrc 请求来源,请填写"wb”
*/
Log.i(TAG, "开始获取地理位置~~");
String result = null;
String lnglat = geoLng + "," + geoLat;
Map<String, String> map = new HashMap<String, String>();
map.put("lnglat", lnglat);
map.put("reqsrc", "wb");
String signUrl = UrlUtil.buildUrlByQueryStringMapAndBaseUrl(
Constants.MAP_RGEOC, map);
HttpGet httpGet = new HttpGet(signUrl);
HttpResponse httpResponse = null;
HttpClient httpClient = new DefaultHttpClient();
try
{
httpResponse = httpClient.execute(httpGet);
result = EntityUtils.toString(httpResponse.getEntity(),
"GB2312");
JSONObject dataObj = new JSONObject(result)
.getJSONObject("detail");
JSONArray array = dataObj.getJSONArray("poilist");
for (int i = 0; i < array.length(); i++)
{
System.out.println("array:" + array.getString(i));
}
JSONObject data = array.getJSONObject(1);
strdata = data.getString("addr");
System.out.println("Str:" + strdata);
Log.i(TAG, "地理位置为:" + strdata);
Toast.makeText(SendWbActivity.this, strdata,
Toast.LENGTH_LONG).show();
Message msg = locationhandler.obtainMessage();
locationhandler.sendMessage(msg);
} catch (Exception e)
{
e.printStackTrace();
}
System.out.println("地址位置:" + result);
}
}
};
class LocationHandler extends Handler
{
@Override
public void handleMessage(Message msg)
{
// TODO Auto-generated method stub
super.handleMessage(msg);
location_image.setVisibility(View.VISIBLE);
location_progressBar.setVisibility(View.GONE);
location_text.setText(strdata);
locationManager.removeUpdates(locationListener);
}
}
R.string.map_api在高德官方申请的授权码,http://code.mapabc.com/在这里申请~~~
或得经纬度后,将经纬度上传到腾讯地图,返回JSON数据,解析就OK了~~~
- 高德完美获取地理位置信息并显示出来~~
- IOS 获取地理位置信息并逆向解析
- 高德获取ip地理位置
- 通过window.navigator对象获取地理位置信息并在百度地图上显示
- 显示ip地理位置信息
- 显示ip地理位置信息
- HTML5实现获取地理位置信息并定位功能
- HTML5实现获取地理位置信息并定位功能
- Location获取地理位置信息
- ios获取地理位置信息
- android获取地理位置信息
- html5 获取地理位置信息
- 关于获取地理位置信息
- HTML5获取地理位置信息
- ReactNative 获取地理位置信息
- 获取网页内容并显示出来
- 获取网页中的图片并显示出来
- 获取文件名并即时显示出来的
- 一个#3SB#用户的吐槽
- 数据库设计原则
- timer
- 安装 xampp
- 《构建高性能的web站点》读书笔记--组件分离
- 高德完美获取地理位置信息并显示出来~~
- Battery eliminator circuit
- C/C++带括号四则运算
- ABAP中CHECKBOX 和LISTBOX的使用(屏幕字段的控制)1
- FTP文件上传与下载(JAVA)
- android sqlite数据库增删改查
- IM-A820L第一屏与第二屏已破(非开机动画)(应该泛泰机型通用)
- C#发送邮件(添加附件)!
- 洗牌算法