`
caiwb1990
  • 浏览: 316170 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Google Api 获取地址

阅读更多
我们获取Location的目的之一肯定是有获取这个位置的详细地址,而我们有了Location在来获取Address就相对简单多了,因为GoogleApi已经封装好了方法,我们只需呀通过Location获取GeoPoint,然后在通过GeoPoint来获取我们想要的Address.


第一步新建一个Android工程LocationDemo,

第二步: 修改main.xml
    <?xml version="1.0" encoding="utf-8"?>  
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        >  
    <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>  


第三步:修改LocationDemo.java

    package cn.caiwb.address
    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;  
    public class LocationDemo extends Activity {  
         
        private TextView longitude;  
        private TextView latitude;  
        private TextView address;  
        @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());  
        }  
          
        //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) {  
                     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;  
         }  
    }  


第四步:最重要一步在AndroidManiefest.xml中导入Google Api库
<uses-library android:name="com.google.android.maps" />  




0
0
分享到:
评论

相关推荐

    android官方api离线版

    Android官方API离线版是一个非常宝贵的资源,它包含了大量的Android开发所需的信息,使得开发者无需互联网连接也能查阅Android的API文档。这个压缩包提供的是`.chm`格式的文件,这是一种由微软开发的帮助文件格式,...

    Android 根据经纬度获取地址

    1. **Google Play服务**:Google Play服务是Android应用程序开发中的一个重要组件,它提供了许多API,包括定位、地图、游戏服务等。要使用基于经纬度的地理编码功能,开发者需要在项目中引入Google Play服务库。 2....

    android的API合集(中英文) 官方下载

    9. **测试与发布**:API文档还包含有关如何测试应用程序、准备发布和提交到Google Play Store的指南。 通过阅读和理解Android API合集,开发者能够学习到如何使用Android SDK创建应用程序,如何与系统服务交互,...

    Android Google Api 手机上的一个小程序

    【Android Google API】是Google为Android开发者提供的一个强大的工具集,它允许开发者在Android设备上集成各种Google服务,如地图、Google Play服务、Google Drive、Google Sign-In等。本项目中的"iTracks"小程序,...

    AndroidAPI文档完整版

    Android API文档是开发者在进行Android应用开发时的重要参考资料,它详尽地介绍了Android系统的各种接口、类库和功能。这份“Android API文档完整版”包含了官方文档和具有搜索功能的版本,使得开发者能够更高效地...

    android 天气预报 google api 完整源代码

    首先,Google提供了多个API,如Geocoding API用于地址转换为经纬度坐标,Geolocation API用于获取设备的位置信息,而Weather API则提供实际的天气数据。开发者通常会结合这些API,构建出一个完整的天气应用。 1. **...

    Google官方API(Android-15 ApiDemo)

    3. **传感器与位置服务**:API Demo包含了有关如何使用加速度计、陀螺仪、磁力计等传感器的示例,以及如何利用Google Maps API获取地理位置信息。 4. **多媒体支持**:Android-15增强了多媒体文件的处理能力,API ...

    Android SDK API 29

    虽然Eclipse不再得到Google的官方支持,但开发者依然可以通过ADT(Android Developer Tools)插件来管理SDK,包括添加API 29。首先,需要在Eclipse中打开“Window” &gt; “Android SDK Manager”,然后勾选“Android ...

    android获取GPS经纬度,并根据经纬度获取准确地址( 纯原生)

    throw new IOException("无法获取地址"); } } ``` 这个方法会返回一个`Address`对象列表,通常只有一个元素,因为我们在调用`getFromLocation()`时指定了返回结果数量为1。`Address`对象包含了详细的地址信息,如...

    android 隐藏api jar包,api 30

    在Android开发中,隐藏API指的是官方不推荐或者不公开直接使用的API接口,这些接口通常用于系统内部功能,可能因为安全、稳定性的考虑而被限制访问。然而,有时开发者为了实现某些特定功能,可能会需要利用这些隐藏...

    Android获取Mac地址

    在Android 6.0(API级别23)之前,开发者可以轻松地通过`WifiManager`类的`getMacAddress()`方法来获取设备的Mac地址。以下是一个简单的示例: ```java WifiManager wifiManager = (WifiManager) context....

    Android中文API合集 chm

    Android API是Google提供的编程接口,它包含了Android操作系统的核心功能和组件。开发者可以使用这些API来构建各种各样的移动应用,包括但不限于用户界面设计、数据存储、网络通信、多媒体处理、设备硬件访问等。...

    Android地图定位googleSDK使用

    替换`YOUR_API_KEY`为你的Google Maps API密钥,可在Google Cloud Console中获取。 接下来,我们介绍如何使用Google Maps SDK来显示地图。在布局XML文件中添加MapView控件: ```xml &lt;com.google.android.gms.maps....

    Android google地图api Demo

    然后,获取API密钥,这是连接我们的应用与Google Maps服务的关键。 在AndroidManifest.xml文件中,我们需要添加必要的权限,如访问网络和位置服务。例如: ```xml &lt;uses-permission android:name="android....

    Android串口通信开发Google官方android-serialport-api源码

    Google官方提供的`android-serialport-api`库就是为了方便开发者实现这一功能。这个库允许Android应用程序访问并控制设备上的串行端口,进行数据传输。 首先,我们要理解什么是串口通信。串口通信,也称为串行接口...

    Google官方API(Android-12 ApiDemo)

    **Android API 深度解析:Google 官方 API(Android-12 ApiDemo)** 在 Android 开发中,Google 官方API扮演着至关重要的角色。这些API为开发者提供了丰富的功能,使得应用程序能够实现从基础操作到复杂交互的一切...

    android-serialport-api

    https://code.google.com/archive/p/android-serialport-api/

    Android API中文帮助文档合集

    Android API中文帮助文档合集是为Android开发者提供的一份详尽的参考资料,旨在助力开发者更好地理解和使用Android平台的各种功能和接口。这份文档包含了从基础到高级的各类Android开发知识点,覆盖了系统架构、UI...

    Android10.0SN号获取接口patch.zip

    在Android 10.0版本中,为了保护用户隐私和遵循GDPR(General Data Protection Regulation)规定,谷歌对获取设备序列号的接口进行了调整,使得开发者不能直接通过公共API获取SN号。因此,"Android10.0 SN号获取接口...

    android studio 简单获取天气案例

    在Android开发中,Android Studio是谷歌官方推荐的集成开发环境(IDE),用于构建原生Android应用。本案例“android studio 简单获取天气”旨在教你如何利用Android Studio开发一个应用,该应用能够从网络获取天气...

Global site tag (gtag.js) - Google Analytics