废话不多说,直接进入代码块:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<TextView
android:id="@+id/longitude"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="longitude:"
/>
<TextView
android:id="@+id/latitude"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="latitude:"
/>
<TextView
android:id="@+id/address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
清单文件( <uses-library android:name="com.google.android.maps" />
) 中最重要的代码
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".TestAddresActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="com.google.android.maps" />
</application>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
java代码:
package cn.com;
import java.util.List;
import java.util.Locale;
import com.google.android.maps.GeoPoint;
import android.app.Activity;
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class TestAddresActivity extends Activity {
private TextView longitude;
private TextView latitude;
private TextView address;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
longitude = (TextView) findViewById(R.id.longitude);
latitude = (TextView) findViewById(R.id.latitude);
address = (TextView) findViewById(R.id.address);
Location mLocation = getLocation(this);
GeoPoint gp = getGeoByLocation(mLocation);
Address mAddress = getAddressbyGeoPoint(this, gp);
longitude.setText("Longitude: " + mLocation.getLongitude());
latitude.setText("Latitude: " + mLocation.getLatitude());
address.setText("Address: " + mAddress.getCountryName() + ","
+ mAddress.getLocality() + "," + mAddress.getThoroughfare());
}
// Get the Location by GPS or WIFI
public Location getLocation(Context context) {
LocationManager locMan = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
Location location = locMan
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location == null) {
location = locMan
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
return location;
}
// 通过Location获取GeoPoint
public GeoPoint getGeoByLocation(Location location) {
GeoPoint gp = null;
try {
if (location != null) {
double geoLatitude = location.getLatitude() * 1E6;
double geoLongitude = location.getLongitude() * 1E6;
gp = new GeoPoint((int) geoLatitude, (int) geoLongitude);
}
} catch (Exception e) {
e.printStackTrace();
}
return gp;
}
// 通过GeoPoint来获取Address
public Address getAddressbyGeoPoint(Context cntext, GeoPoint gp) {
Address result = null;
try {
if (gp == null) {
Toast.makeText(getApplicationContext(), "抱歉,暂未获取到信息", 1).show();
}
if (gp != null) {
Geocoder gc = new Geocoder(cntext, Locale.CHINA);
double geoLatitude = (int) gp.getLatitudeE6() / 1E6;
double geoLongitude = (int) gp.getLongitudeE6() / 1E6;
List<Address> lstAddress = gc.getFromLocation(geoLatitude,
geoLongitude, 1);
if (lstAddress.size() > 0) {
result = lstAddress.get(0);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
注意: 若在模拟器上运行,必须在DDMS上send 经纬度.
分享到:
相关推荐
本文将深入探讨如何利用Android系统提供的APIs获取个人当前位置,并通过地理编码(Geocoding)解析来展示用户的具体位置信息。 首先,Android提供了多种定位方式,包括GPS(全球定位系统)、Wi-Fi、移动网络基站等...
"MapDemo4(定位到当前位置)" 是一个关于地图应用的示例项目,主要关注如何在地图上实现对用户当前位置的精准定位。这个项目可能是一个Android或iOS应用的一部分,因为这两种平台都有广泛使用的地图API,可以实现这样...
**Android Studio代码定位神器:CodeGlance** 在Android开发过程中,高效地浏览和定位代码是提升开发效率的关键。CodeGlance是一款专为Android Studio设计的插件,它为开发者提供了类似Sublime Text的小地图功能,...
【百度地图API定位(Android)】是Android应用开发中的一个重要环节,它允许用户在应用程序中获取当前位置、导航、搜索地点等功能。在这个项目中,开发者已经完成了一个可运行的示例,并且进行了测试,确保了其功能...
在Android平台上,基站定位是一...你可以通过阅读和分析源码,了解基站定位的实现细节,加深对Android定位机制的理解,并在此基础上进行二次开发,例如结合GPS和其他定位方式,提高定位精度,或者优化定位服务的性能。
一、Android定位技术 Android系统通过多种方式实现位置追踪,主要包括GPS(全球定位系统)、Wi-Fi定位和移动网络定位。GPS是最精确的定位方式,但需要开放硬件权限并接收到足够的卫星信号。Wi-Fi定位则依赖于已知Wi-...
// map view 销毁后不在处理新接收的位置 if (location == null || mMapView == null) return; MyLocationData locData = new MyLocationData.Builder() .accuracy(location.getRadius()) //...
7. **定位与移动**:利用LocationClient或FusedLocationProviderClient获取设备的位置,并在地图上显示当前位置。还可以添加手势处理,让用户能够平移和缩放地图。 8. **添加自定义功能**:如路径规划、覆盖物...
当需要进行定位时,移动设备可以测量周围的WiFi信号强度,并与已有的指纹数据库中的数据进行比对,从而估算出设备的当前位置。 在实现过程中,首先需要对特定区域内的多个参考点进行测量,记录下各个位置点的WiFi...
1.封装了GpsManager和BGpsManager两个类: ...2.主要功能是获取当前Location和当前坐标的物理地址名称。 3.简单的封装,可以直接用于项目中,也可以根据自己需求修改重新封装。 4.内附个人简单对比评测结论。
运行环境:该软件运行环境android1.6及以上版本。 软件描述:1、软件借助百度地图进行开发,可以随时地位。2、软件可以将当前的地址信息水印到相片里。水印的方式有两种:一、调用手机相机进行拍摄,并把信息定位到...
为保障儿童学生及老人的人身安全,特别推出:“儿童学生老人手机定位软件”,能够让世界上任何一台电脑或手机查看被追踪手机当前所在的位置。只需安装在普通安卓手机上即可,对手机品牌、型号、运营商无任何要求。...
在本篇毕业设计中,作者探讨了基于Android的个人移动地图应用的开发,这是一个结合了现代移动通信技术、定位服务和地图服务的创新项目。在3G时代,手机已不仅仅是一种通讯工具,而是逐渐演变成一种多功能服务平台。...
- **导航(Path Navigation)**:为用户提供从当前位置到目的地的路径指引。 - **查询(Information Query)**:检索与特定地点或对象相关信息。 - **识别(Identification)**:确认某个对象或个体的身份。 - **...
3. **定位到当前位置** 要实现在地图上显示用户当前位置,你需要获取用户的GPS坐标。在Android中,这通常通过LocationManager和LocationListener完成。在获取到位置后,创建一个`Point`对象,并使用`MapView`的`...
- 允许应用程序创建模拟位置提供者,主要用于测试目的,可以生成虚假的位置数据来测试应用的定位功能。 6. **android.permission.ACCESS_NETWORK_STATE** - 允许应用程序访问关于网络的信息,包括当前的网络连接...
2. **定位功能**:组件支持获取设备的当前GPS坐标,能够快速设定当前位置为选择点。 3. **搜索功能**:Leku允许用户通过输入地址或地点名称进行搜索,快速找到目标位置。 4. **自定义配置**:开发者可以根据应用...
- **功能说明**: 在当前位置插入新行,并将光标移至上一行。 **36. 复制文件名** - **Eclipse**: 选中文件后 `Ctrl+C` - **Android Studio**: 选中文件后 `Ctrl+C` - **功能说明**: 复制当前选中文件的名称。 **37...
7. **地图集成**:将获取的定位信息与地图服务(如Google Maps或Mapbox)结合,显示用户当前位置或提供导航指引。 8. **离线定位**:在没有网络连接的情况下,利用预下载的地图数据进行基本定位。 9. **误差校正**...
2. **定位服务**:Android系统提供了定位服务接口,源码中可能使用了LocationManager和LocationListener来获取设备的当前位置。LocationListener会监听位置更新,当位置发生变化时,回调相关方法,从而实现实时定位...