精华内容
下载资源
问答
  • Android 高德地图入门demo,最新高德地图实现方法,附源码及apk
  • android 高德地图导航demo

    千次下载 热门讨论 2013-08-09 10:23:55
    android 高德地图导航demo
  • Android :高德地图demo

    千次阅读 2018-12-20 11:00:09
    高德的账号去改的开房平台进行注册,注册成功后进入个人中心; 进入个人中心后点击应供管理 //这里可以随便写 获取SHA1码 需要的权限有 <!-- Normal Permissions 不需要运行时注册...

    在这里插入图片描述
    高德的账号去改的开房平台进行注册,注册成功后进入个人中心;
    在这里插入图片描述
    进入个人中心后点击应供管理
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    //这里可以随便写
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    获取SHA1码
    在这里插入图片描述

    在这里插入图片描述

    需要的权限有

        <!-- Normal Permissions 不需要运行时注册 -->
        <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission
            android:name="android.permission.CHANGE_CONFIGURATION"
            tools:ignore="ProtectedPermissions" />
    
        <!-- 请求网络 -->
        <uses-permission android:name="android.permission.INTERNET" />
    
        <!-- 不是SDK需要的权限,是示例中的后台唤醒定位需要的权限 -->
        <uses-permission android:name="android.permission.WAKE_LOCK" />
    
        <!-- 需要运行时注册的权限 -->
        <!-- 用于进行网络定位 -->
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <!-- 用于访问GPS定位 -->
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <!-- 用于提高GPS定位速度 -->
        <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
        <!-- 写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据 -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <!-- 读取缓存数据 -->
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
        <!-- 用于读取手机当前的状态 -->
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
        <!-- 更改设置 -->
        <uses-permission
            android:name="android.permission.WRITE_SETTINGS"
            tools:ignore="ProtectedPermissions" />
    
        <!-- 3.2.0版本增加 -->
        <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
        <!-- 3.2.0版本增加 -->
        <uses-permission android:name="android.permission.BLUETOOTH" />
    

    清单文件中

     <meta-data
                android:name="com.amap.api.v2.apikey"
                android:value="你的key值"></meta-data>
            <!-- 定位需要的服务 -->
            <service android:name="com.amap.api.location.APSService"></service>
    

    在这里插入图片描述
    sourceSets {
    main {
    jniLibs.srcDirs = [‘libs’]
    }
    }
    写入一个工具类

    public class LocationUtils implements AMapLocationListener {
        private AMapLocationClient aMapLocationClient;
        private AMapLocationClientOption clientOption;
        private ILocationCallBack callBack;
    
        public void startLocate(Context context) {
            aMapLocationClient = new AMapLocationClient(context);
    
            //设置监听回调
            aMapLocationClient.setLocationListener(this);
    
            //初始化定位参数
            clientOption = new AMapLocationClientOption();
            clientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
            clientOption.setNeedAddress(true);
            clientOption.setOnceLocation(false);
            //设置是否强制刷新WIFI,默认为强制刷新
            clientOption.setWifiActiveScan(true);
            //设置是否允许模拟位置,默认为false,不允许模拟位置
            clientOption.setMockEnable(false);
            //设置定位间隔
            clientOption.setInterval(2000);
            aMapLocationClient.setLocationOption(clientOption);
    
            aMapLocationClient.startLocation();
        }
    
        @Override
        public void onLocationChanged(AMapLocation aMapLocation) {
            if (aMapLocation != null) {
                if (aMapLocation.getErrorCode() == 0) {
                    //定位成功完成回调
                    String country = aMapLocation.getCountry();
                    String province = aMapLocation.getProvince();
                    String city = aMapLocation.getCity();
                    String district = aMapLocation.getDistrict();
                    String street = aMapLocation.getStreet();
                    double lat = aMapLocation.getLatitude();
                    double lgt = aMapLocation.getLongitude();
    
                    callBack.callBack(country + province + city + district + street, lat, lgt, aMapLocation);
                } else {
                    //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
                    Log.e("AmapError", "location Error, ErrCode:"
                            + aMapLocation.getErrorCode() + ", errInfo:"
                            + aMapLocation.getErrorInfo());
                }
            }
        }
    
        /**
         * 自定义图标
         *
         * @return
         */
        public MarkerOptions getMarkerOption(String str, double lat, double lgt) {
            MarkerOptions markerOptions = new MarkerOptions();
            markerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher));
            markerOptions.position(new LatLng(lat, lgt));
            markerOptions.title(str);
            markerOptions.snippet("纬度:" + lat + "   经度:" + lgt);
            markerOptions.period(100);
    
            return markerOptions;
        }
    
        public interface ILocationCallBack {
            void callBack(String str, double lat, double lgt, AMapLocation aMapLocation);
        }
    
        public void setLocationCallBack(ILocationCallBack callBack) {
            this.callBack = callBack;
        }
    }
    

    然后就是高德的代码

    public class MainActivity extends AppCompatActivity implements LocationSource {
    
        private MapView myMapView;
        private AMap aMap;
        private LocationSource.OnLocationChangedListener mListener = null;//定位监听器
        private LocationUtils locationUtils;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            myMapView = findViewById(R.id.MapView);
            myMapView.onCreate(savedInstanceState);
    
            initView();
        }
    
        private void initView() {
            if(aMap == null){
                aMap = myMapView.getMap();
            }
    
            setLocationCallBack();
    
            //设置定位监听
            aMap.setLocationSource(this);
            //设置缩放级别
            aMap.moveCamera(CameraUpdateFactory.zoomTo(15));
            //显示定位层并可触发,默认false
            aMap.setMyLocationEnabled(true);
        }
    
        private void setLocationCallBack(){
            locationUtils = new LocationUtils();
            locationUtils.setLocationCallBack(new LocationUtils.ILocationCallBack() {
                @Override
                public void callBack(String str,double lat,double lgt,AMapLocation aMapLocation) {
    
                    //根据获取的经纬度,将地图移动到定位位置
                    aMap.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(lat,lgt)));
                    mListener.onLocationChanged(aMapLocation);
                    //添加定位图标
                    aMap.addMarker(locationUtils.getMarkerOption(str,lat,lgt));
                }
            });
        }
    
        @Override
        public void activate(OnLocationChangedListener onLocationChangedListener) {
            mListener = onLocationChangedListener;
    
            locationUtils.startLocate(getApplicationContext());
        }
    
        @Override
        public void deactivate() {
            mListener = null;
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            //暂停地图的绘制
            myMapView.onPause();
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            //销毁地图
            myMapView.onDestroy();
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            //重新绘制加载地图
            myMapView.onResume();
        }
    
        @Override
        public void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
            myMapView.onSaveInstanceState(outState);
        }
    }
    

    xml中只需要写入一个MapView就ok

    <com.amap.api.maps.MapView
            android:id="@+id/MapView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"></com.amap.api.maps.MapView>
    

    还有一个反编译地理位置的代码,效果图就不上了

    public class AddrChangeActivity extends AppCompatActivity implements View.OnClickListener, GeocodeSearch.OnGeocodeSearchListener {
    
        private EditText Addr_Edit;
        private Button Zheng_Btn;
        private EditText JinDU_Edit;
        private EditText WeiDu_Edit;
        private Button Fan_Btn;
        private TextView Get_Text;
        private GeocodeSearch geocodeSearch;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_addr_change);
            initView();
            //构造 GeocodeSearch 对象,并设置监听。
            geocodeSearch = new GeocodeSearch(this);
            geocodeSearch.setOnGeocodeSearchListener(this);
    //通过GeocodeQuery设置查询参数,调用getFromLocationNameAsyn(GeocodeQuery geocodeQuery) 方法发起请求。
    //address表示地址,第二个参数表示查询城市,中文或者中文全拼,citycode、adcode都ok
    //        GeocodeQuery query = new GeocodeQuery(address, "010");
    //        geocoderSearch.getFromLocationNameAsyn(query);
    
        }
    
        private void initView() {
            Addr_Edit = (EditText) findViewById(R.id.Addr_Edit);
            Zheng_Btn = (Button) findViewById(R.id.Zheng_Btn);
            JinDU_Edit = (EditText) findViewById(R.id.JinDU_Edit);
            WeiDu_Edit = (EditText) findViewById(R.id.WeiDu_Edit);
            Fan_Btn = (Button) findViewById(R.id.Fan_Btn);
            Get_Text = (TextView) findViewById(R.id.Get_Text);
    
            Zheng_Btn.setOnClickListener(this);
            Fan_Btn.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.Zheng_Btn:
                    String addr = Addr_Edit.getText().toString().trim();
                    if (addr.isEmpty()) {
                        Toast.makeText(this, "请输入地址", Toast.LENGTH_SHORT).show();
                        return;
                    }
                    //参数1:addr 地址值 参数2:规定一个区域
                    GeocodeQuery query = new GeocodeQuery(addr, null);
                    geocodeSearch.getFromLocationNameAsyn(query);
                    break;
                case R.id.Fan_Btn:
                    String jingdu = JinDU_Edit.getText().toString().trim();
                    String weidu = WeiDu_Edit.getText().toString().trim();
                    if (jingdu.isEmpty() || weidu.isEmpty()) {
                        Toast.makeText(this, "请输入经纬度", Toast.LENGTH_SHORT).show();
                        return;
                    }
                    //这个是经纬度查询的类
                    LatLonPoint point = new LatLonPoint(Double.parseDouble(jingdu), Double.parseDouble(weidu));
                    RegeocodeQuery regeocodeQuery = new RegeocodeQuery(point, 2000000000, GeocodeSearch.AMAP);
                    GeocodeSearch reSe = new GeocodeSearch(this);
                    reSe.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {
                        @Override
                        public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
                            Log.e("onRegeocodeSearched", "onRegeocodeSearched");
                            RegeocodeAddress address = regeocodeResult.getRegeocodeAddress();
                            Get_Text.setText(address.getFormatAddress()+"地址");
                        }
    
                        @Override
                        public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
    
                        }
                    });
                    geocodeSearch.getFromLocationAsyn(regeocodeQuery);
                    break;
            }
        }
    
        //把经纬度转换成地址
        @Override
        public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
            Log.e("onRegeocodeSearched", "onRegeocodeSearched");
            RegeocodeAddress address = regeocodeResult.getRegeocodeAddress();
            Get_Text.setText(address.getFormatAddress());
        }
    
        //是吧地址转换成经度纬度
        @Override
        public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
            Log.e("onGeocodeSearched", "onGeocodeSearched");
            //从查出来的结果集 得到地址对象
            GeocodeAddress address = geocodeResult.getGeocodeAddressList().get(0);
            //从地址对象里面得到 经纬度的类
            LatLonPoint latLonPoint = address.getLatLonPoint();
            //从这个point取经纬度即可
            Get_Text.setText("经度是:" + latLonPoint.getLongitude() + ",纬度是:" + latLonPoint.getLatitude());
    
        }
    }
    

    反编译的xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".AddrChangeActivity">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="4">
    
            <EditText
                android:id="@+id/Addr_Edit"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="2.5"
                android:hint="请输入地址" />
    
            <Button
                android:id="@+id/Zheng_Btn"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1.5"
                android:text="解析" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="4">
    
            <EditText
                android:id="@+id/JinDU_Edit"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1.5"
                android:hint="输入经度" />
    
            <EditText
                android:id="@+id/WeiDu_Edit"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1.5"
                android:hint="输入纬度" />
    
            <Button
                android:id="@+id/Fan_Btn"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="反向解析" />
        </LinearLayout>
    
        <TextView
            android:id="@+id/Get_Text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="memeda" />
    </LinearLayout>
    

    以上;

    展开全文
  • 该项目内含源代码+可执行程序+文档,核心代码主要实现地图周边功能, 项目需要自己在高德后台申请属于自己的key,然后再重新运行后就可看到效果了。
  • Android高德地图Demo

    2015-05-27 12:24:41
    自己根据高德API写的一个高德地图demo 有定位和画轨迹图,其他功能你们可以自己去查官方API,都很简单,开发之前需要去申请key才行,具体怎么申请官网有步骤
  • 高德地图demo,通过高德地图选择位置获取经纬度,并把经纬度转换为中文详细地址,详细地址包括省市区县乡镇街道门牌号,在代码中需要替换自己的key,必须是js web key奥。
  • 高德地图离线地图Demo

    热门讨论 2015-01-21 16:11:31
    高德地图离线地图Demo,之前下载的官网的demo是有问题的(普通的市下载不显示进度),这是修改过的demo。
  • 高德地图轨迹回放DemoAndroid

    热门讨论 2014-12-10 00:14:54
    高德地图上,沿着折现覆盖物移动的动画,实现了轨迹回放的功能,仅供参考。
  • android 高德地图 demo

    2016-04-22 11:19:59
    该项目是高德地图demo,运行在eclipse上,功能包括:显示基础地图,定位,显示marker标志,点击marker标志有气泡显示
  • Android开发,实现高德地图搜索关键字,并添加Marker图标,接入非常快捷,轻量不占内存,搜索显示搜索结果。高德资源图片经纬度,地址
  • 最新高德地图demo

    2015-04-09 15:27:59
    android调用最新高德地图api实现天气预报,及位置定位功能等
  • Android应用中通过Intent跳转地图应用(百度地图、高德地图),进行路线规划,如果没有安装则打开网页百度地图进行路线规划。
  • 不是导入project,请一定导入module!! 更多高德相关请查看本人博客:https://blog.csdn.net/xiayiye5/article/category/8777970
  • 百度地图和高德地图Demo

    热门讨论 2014-06-03 16:01:22
    百度地图和高德地图的SDK和自己的几个Demo, 能够很好的运用到自己的项目中
  • 高德地图官方的SDK包集合:所有功能都有包括3D、定位、搜索功能以及DEMO源码的下载...
  • android版本高德地图聚合demo,实现自定义点聚合功能。
  • 今天想试一下运行高德地图demo,把压缩包下载好后解压,用Android Stuidio打开,一开始构建项目没有问题 ![图片说明](https://img-ask.csdn.net/upload/201911/12/1573561170_879420.png)![图片说明]...
  • 本程序实现了android高德地图进行源码加载,在地图上添加标记,对标记进行连线。 本程序实现了android高德地图进行源码加载,在地图上添加标记,对标记进行连线。 本程序实现了android高德地图进行源码加载,...
  • 自己参考高德地图API文档做的POI搜索地点的例子,显示锚点和锚点位置信息,且锚点显示的位置信息可以随着锚点在地图上位置的变化而变化
  • 高德web端实现多边形电子围栏demo 地图上点三个点形成多边形区域,可以通过拉拽添加点的形式添加边的数量 可判断marker是否在多边形区域区域内(jQuery需要自己添加)
  • 高德地图在日常生活中经常会用到,那么基于代码如何实现高德地图呢?下面小编给大家分享一个demo帮助大家学习android高德地图的简单开发,需要的朋友参考下
  • 实现一个Demo集成高德地图,驾车导航,步行导航,步行导航暂且支持精准输入;
  • 高德地图移除路线Demo

    2018-04-17 10:42:26
    高德地图添加路线,移除路线以及更改路线颜色、宽度等操作 高德地图其他操作都很简单就
  • 高德离线地图Demo

    热门讨论 2014-09-09 17:49:07
    简单的修改了高德api中的离线地图,实现viewpager+fragment。将已下载和正在下载的资源放在另一个fragment中。高德的状态太乱还有一些下问题。希望一起研究学习
  • 高德地图Android版本demo
  • 高德demo Android

    2015-10-15 11:44:58
    实用性很高的高德地图开发demo,功能:定位,线路查询,卫星地图,poi搜索,标记等!
  • 高德地图-Android开发环境配置说明DEMO,定位,导航......
  • 一个园区的obj模型,并附有部分纹理. 同时还有高德地图加载3dobj模型实例
  • 在清单文件里面请自行到高德地图官网申请key进行替换,本demo是使用2D官方jar包,需要3D功能的可以自行到官方下载,demo比较简单注释非常详细,适合刚学习高德地图定位的朋友。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,909
精华内容 763
关键字:

高德地图demoandroid