精华内容
下载资源
问答
  • android 高德地图 demo

    2016-04-22 11:19:59
    该项目是高德地图demo,运行在eclipse上,功能包括:显示基础地图,定位,显示marker标志,点击marker标志有气泡显示
  • android 高德地图Demo 的使用

    千次阅读 2016-05-23 00:25:44
    android 高德地图Demo 的使用

    android 高德地图Demo 的使用


    1、将多余的Avtivity和layout删了!



    2、高德地图 记得要加入Key值,name不用修改;将主Avtivity变一下,剩下的删了!




    3、修改 Assistant_Location_Activity:


    package com.amap.location.demo;

    import com.amap.api.location.AMapLocationClient;

    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.Window;
    import android.webkit.GeolocationPermissions.Callback;
    import android.webkit.JsResult;
    import android.webkit.WebChromeClient;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.Button;

    /**
     * H5辅助定位模式功能演示
     *
     * @创建时间: 2015年11月24日 下午4:24:07
     * @项目名称: AMapLocationDemo2.x
     *
     * @author hongming.wang
     * @文件名称: Battery_Saving_Activity.java
     * @类型名称: Battery_Saving_Activity
     */
    public class Assistant_Location_Activity extends Activity implements OnClickListener {

        private AMapLocationClient locationClient = null;

        private WebView webView;
        private Button button1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            requestWindowFeature(Window.FEATURE_NO_TITLE);//不顯示标题
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_assistant_location);

            webView = (WebView) findViewById(R.id.webView);
            button1 = (Button) findViewById(R.id.button1);
            button1.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stubs
                    Intent intent=new Intent();  
                    //包名 包名+类名(全路径)  
                    intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");  
                    startActivity(intent);  
                    finish();//停止当前的Activity,如果不写,则按返回键会跳转回原来的Activity
                    
                }
            });
     
            locationClient = new AMapLocationClient(getApplicationContext());
        
            locationClient.startAssistantLocation();    
            webView.setVisibility(View.VISIBLE);
            webView.loadUrl(Utils.URL_H5LOCATION);
            initWebView();
        }

        private void initWebView(){
        
            webView = (WebView) findViewById(R.id.webView);
            
            WebSettings webSettings = webView.getSettings();
            // 允许webview执行javaScript脚本
            webSettings.setJavaScriptEnabled(true);
            // 设置是否允许定位,这里为了使用H5辅助定位,设置为false。
            //设置为true不一定会进行H5辅助定位,设置为true时只有H5定位失败后才会进行辅助定位
            webSettings.setGeolocationEnabled(false);
            
            
            webView.setWebViewClient(new WebViewClient() {
                
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
                }

                public void onPageStarted(WebView view, String url, Bitmap favicon) {
                    super.onPageStarted(view, url, favicon);
                }
            });

            webView.setWebChromeClient(new WebChromeClient() {
                // 处理javascript中的alert
                public boolean onJsAlert(WebView view, String url, String message,
                        final JsResult result) {
                    return true;
                };

                // 处理javascript中的confirm
                public boolean onJsConfirm(WebView view, String url,
                        String message, final JsResult result) {
                    return true;
                };

                // 处理定位权限请求
                @Override
                public void onGeolocationPermissionsShowPrompt(String origin,
                        Callback callback) {
                    callback.invoke(origin, true, false);
                    super.onGeolocationPermissionsShowPrompt(origin, callback);
                }
                @Override
                // 设置网页加载的进度条
                public void onProgressChanged(WebView view, int newProgress) {
                    Assistant_Location_Activity.this.getWindow().setFeatureInt(
                            Window.FEATURE_PROGRESS, newProgress * 100);
                    super.onProgressChanged(view, newProgress);
                }

                // 设置应用程序的标题title
                public void onReceivedTitle(WebView view, String title) {
                    super.onReceivedTitle(view, title);
                }
            });
        }
        
        @Override
        protected void onDestroy() {
            super.onDestroy();
            if (null != locationClient) {
                locationClient.stopAssistantLocation();
                locationClient.onDestroy();
            }
            if(null != webView){
                webView.destroy();
            }
        }

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            
        }
        
    }


    4、修改布局文件:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
        
        <WebView
            android:id="@+id/webView"
            android:visibility="gone"
            android:layout_marginTop="@dimen/normal_margin"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
           />

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="56dp"
            android:layout_marginRight="58dp"
            android:text="Button" />

    </RelativeLayout>




    展开全文
  • Android :高德地图demo

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

    以上;

    展开全文
  • android 高德地图导航demo

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

    2018-03-26 10:11:25
    1、需要有注册的key值和SDK 详情见:... ...2、简单的高德地图代码 其中build.gradle、清单文件、jar包尤其重要 >1 build.gradle中: apply plugin: 'com.android.application'


    1、需要有注册的key值和SDK


    详情见:https://blog.csdn.net/LuoXiaoBin88/article/details/66971270


    2、简单的高德地图代码

    其中build.gradle、清单文件、jar包尤其重要


    >1

    build.gradle中:

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 26
    
        sourceSets{
            main{
                jniLibs.srcDirs=['libs']
            }
        }
    
        defaultConfig {
            applicationId "com.example.gaode"
            minSdkVersion 16
            targetSdkVersion 26
            versionCode 1
            versionName "1.0"
    
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
        }
    
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    
    }
    
    dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
        implementation 'com.android.support:appcompat-v7:26.1.0'
        implementation 'com.android.support.constraint:constraint-layout:1.0.2'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.1'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
        implementation files('libs/AMap3DMap_6.0.1_AMapSearch_5.7.0_20180309.jar')
    }
    

    其中的

    sourceSets{
            main{
                jniLibs.srcDirs=['libs']
            }
        }

    必须要有,否则打开后会有黑屏现象



    >2

    清单文件中的权限、和key的位置


    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.bwei.demo.day16_demo">
    
        <!--允许程序打开网络套接字-->
        <uses-permission android:name="android.permission.INTERNET" />
        <!--允许程序设置内置sd卡的写权限-->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <!--允许程序获取网络状态-->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <!--允许程序访问WiFi网络信息-->
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <!--允许程序读写手机状态和身份-->
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
    
            <meta-data android:name="com.amap.api.v2.apikey" android:value="dadca1153a64486bc2e26f0d65a2c644">
                //开发者申请的key
            </meta-data>
        </application>
    
    </manifest>


    >3 导入jar包

    SDK下载地址见1


    >4

    MainActivity中:


    package com.bwei.demo.day16_demo;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import com.amap.api.maps.MapView;
    
    public class MainActivity extends AppCompatActivity {
    
        MapView mMapView = null;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //获取地图控件引用
            mMapView = (MapView) findViewById(R.id.map);
            //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
            mMapView.onCreate(savedInstanceState);
    
    
    
        }
        @Override
        protected void onDestroy() {
            super.onDestroy();
            //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
            mMapView.onDestroy();
        }
        @Override
        protected void onResume() {
            super.onResume();
            //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
            mMapView.onResume();
        }
        @Override
        protected void onPause() {
            super.onPause();
            //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
            mMapView.onPause();
        }
        @Override
        protected void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
            //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
            mMapView.onSaveInstanceState(outState);
        }
    }
    


    >5

    布局文件中:

    <?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"
        tools:context="com.example.gaode.MainActivity">
    
        <com.amap.api.maps.MapView
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
        </com.amap.api.maps.MapView>
    
    </LinearLayout>
    



    展开全文
  • Android 高德地图入门demo,最新高德地图实现方法,附源码及apk
  • 高德地图-Android开发环境配置说明DEMO,定位,导航......
  • 该项目内含源代码+可执行程序+文档,核心代码主要实现地图周边功能, 项目需要自己在高德后台申请属于自己的key,然后再重新运行后就可看到效果了。
  • 高德地图轨迹回放DemoAndroid

    热门讨论 2014-12-10 00:14:54
    高德地图上,沿着折现覆盖物移动的动画,实现了轨迹回放的功能,仅供参考。
  • 今天想试一下运行高德地图demo,把压缩包下载好后解压,用Android Stuidio打开,一开始构建项目没有问题 ![图片说明](https://img-ask.csdn.net/upload/201911/12/1573561170_879420.png)![图片说明]...
  • Android开发,实现高德地图搜索关键字,并添加Marker图标,接入非常快捷,轻量不占内存,搜索显示搜索结果。高德资源图片经纬度,地址
  • 自己参考高德地图API文档做的POI搜索地点的例子,显示锚点和锚点位置信息,且锚点显示的位置信息可以随着锚点在地图上位置的变化而变化
  • 自己参考高德地图API文档做的POI搜索地点的例子,显示锚点和锚点位置信息,且锚点显示的位置信息可以随着锚点在地图上位置的变化而变化,这一版和上一版基本一致,没办法免费了,所以设置1分,有需要我账号中任意...
  • 高德地图在日常生活中经常会用到,那么基于代码如何实现高德地图呢?下面小编给大家分享一个demo帮助大家学习android高德地图的简单开发,需要的朋友参考下
  • 一个高德地图demo,演示了基本地图的使用、supportmapfragment创建地图、camera功能、events功能、layers图层功能、热力图功能、地图POI点击功能、地图截屏功能、openg接口功能、polylines功能、polygons功能、arc...
  • 还没有MAP key,可以参考上一篇文章最新基于高德地图android进阶开发(1),上一篇说到下载地图SDK,选择的是一键下载,下载完后解压,包含文件如下图中所示,第一次解压是三个压缩包,还有一个demo文件夹,进一步...

    1、如果你是一个新的开发者,还没有MAP key,可以参考上一篇文章最新基于高德地图的android进阶开发(1),上一篇说到下载地图SDK,选择的是一键下载,下载完后解压,包含文件如下图中所示,第一次解压是三个压缩包,还有一个demo文件夹,进一步解压会出现下面所示的jar开发包。

    这里写图片描述

    2.上面下载的SDK,主要包括下面的功能,1.3D地图,2.2D地图 ,3.搜索服务。相关API连接:http://a.amap.com/lbs/static/unzip/Android_Map_Doc/index.html与android studio开发结合进行android 开发,在android studio中添加第三方JAR包的方法,下面以地图开发为例,将jar包复制到android应用的app/libs/目录下,切换成project面板,然后选中这两个jar包点击右键,选择add As library,这样就将jar加到了应用中。

    3.添加.so文件的方法,至少有两种方式,下图显示方式1

    这里写图片描述

    下面展示方式2,将arm64-v8a 和armeabi放到libs下,并配置build gradel文件,如下图中所示

    这里写图片描述

    下面是build gradel文件

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"
    //注意下面是必须的
        sourceSets {
            main {
                jniLibs.srcDirs = ['libs']
            }
        }
            defaultConfig {
                applicationId "com.dragon.arnav"
                minSdkVersion 14
                targetSdkVersion 23
                versionCode 1
                versionName "1.0"
            }
            buildTypes {
                release {
                    minifyEnabled false
                    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                }
            }
        }
    
    
    
        dependencies {
            compile fileTree(include: ['*.jar'], dir: 'libs')
            testCompile 'junit:junit:4.12'
            compile 'com.android.support:appcompat-v7:23.4.0'
            compile files('libs/AMap_3DMap_V3.3.2_20160525.jar')
            compile files('libs/AMap_Search_V3.3.0_20160616.jar')
            compile files('libs/AMap_2DMap_V2.9.0_20160525.jar')
        }
    

    3.配置权限和相应有的key ,下面显示androidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.dragon.arnav">
    <!--添加对应有权限-->
        <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" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
    
    
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <!--启动高德地图服务,下面的value不要照着输入,请输入你申请是的apikey value-->
            <meta-data
                android:name="com.amap.api.v2.apikey"
                android:value="fc5d4be7c65a05064dd552395ae46bdb"/>
    <!--android:configChanges="orientation|keyboardHidden|screenSize"这句是支持横竖屏切换,要求系统4.0以上-->
            <activity android:name=".Main"
                android:configChanges="orientation|keyboardHidden|screenSize">
    
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>

    4.所有的文件和权限弄完后,下面开始布局文件,main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.dragon.arnav.Main">
    <!--使用高德地图提供的Map View-->
        <com.amap.api.maps.MapView
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
        <ToggleButton
            android:id="@+id/tb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top|right"
            android:textOn="卫星地图"
            android:textOff="普通地图"
            android:checked="false"/>
    
    </FrameLayout>
    

    5.hello map,主要代码main.java

    package com.dragon.arnav;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.CompoundButton;
    import android.widget.ToggleButton;
    
    import com.amap.api.maps.AMap;
    import com.amap.api.maps.MapView;
    
    public class Main extends AppCompatActivity {
        private MapView mapView;
        private AMap aMap;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mapView = (MapView) findViewById(R.id.map);
    //        必须回调MapView的onCreate()方法
            mapView.onCreate(savedInstanceState);
            init();
            ToggleButton tb = (ToggleButton) findViewById(R.id.tb);
            tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
                @Override
                public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
                    if(isChecked){
                        aMap.setMapType(AMap.MAP_TYPE_SATELLITE);
                    } else
                    {
                        aMap.setMapType(AMap.MAP_TYPE_NORMAL);
                    }
                }
            });
        }
    
    //初始化AMap对象
        private void init(){
            if(aMap ==null){
                aMap = mapView.getMap();
            }
        }
    @Override
        protected void onResume(){
        super.onResume();
        mapView.onResume();
    }
    @Override
        protected void onPause(){
        super.onPause();
        mapView.onPause();
    }
        @Override
        protected void onSaveInstanceState(Bundle outState){
            super.onSaveInstanceState(outState);
            mapView.onSaveInstanceState(outState);
        }
        @Override
        protected void onDestroy(){
            super.onDestroy();
            mapView.onDestroy();
        }
    }
    

    6.完成效果图预览

    这里写图片描述


    7.欢迎大家加入AR、VR开发群和关注AR引路人公众号

    这里写图片描述这里写图片描述

    展开全文
  • android 高德地图的接入的demo

    千次阅读 2018-10-18 13:40:56
    import android.content.Context; import android.content.Intent; import android.graphics.BitmapFactory; import android.graphics.Color; import android.os.Bundle; import android.support.annotation...
  • Android 整合高德地图

    千次阅读 2018-06-28 17:36:52
    如果想要在自己的项目中整合进高德,第一步就是要看看人家写的demo,所以首先 下载高德demo http://lbs.amap.com/api/android-sdk/download 下载完以后包含4个文件夹,其中2DMap包含了我们平时用到的很多功能...
  • 看了一下高德地图的jsapi,简单的做了一个demo。1.你需要一个高德地图的账号,注册地址2.登陆进去创建一个应用,这个时候就会给你一个对应的Key3.查看高德地图的的demo,进入4.学习一下左侧分类里面的5.看完上面的,...
  • Android高德地图

    2018-12-20 10:31:57
    权限 &lt;?xml version="1.0" encoding="utf-8"?&gt; ...manifest xmlns:android="...com.example.demo1_scott"&gt; &lt;uses-permission android:na
  • 当用高德地图集成到AndroidStaio的时候,根据高德提供的Demo 发生以下bug  java.lang.UnsatisfiedLinkError: No implementation found for long com.autonavi.amap.mapcore.MapCore.nativeNewInstance(java....
  • 对我开发过百度地图的我来说,整体来说高德地图Demo,没有百度解说的具体 个人更偏向于使用百度地图,可是没办发,项目须要使用高德地图,我开发的是定位,更具经纬度加入标记。标记点击事件,以及路线规划废话不多...
  • 1.本篇博客的目的: 闲的没事,重温一下高德地图是怎么调的,然后定位显示一下...去官方demo里面找,本篇博客是高德地图入门级demo 1.App实现效果图: 2.项目结构图: 3.注册高德开放平台账号,申请key 高...
  • Android高德地图定位

    千次阅读 2016-05-09 21:17:05
    写完以后会将源码开源,今天先写app中用到的定位问题,现在定位的SDK有很多高德地图、百度地图、腾讯地图等,腾讯地图没有用过不予评价,高德地图和百度地图对比我觉得从开发平台的给的demo来说,高德地图给的demo中...
  • 下载链接: 点击下载demo ...其实这个动作很简单,但是,高德地图API开发文档把这一块藏得太隐蔽了。不太好找。 就几行代码。 Intent i = new Intent(); i.setAction("android.intent.action.V
  • 很久没有接触高德地图了,今天小菜接到新需求要用到高德地图,具体的方式链到官网上。高德地图官方集成方式,很简单,步骤很清晰。但是,但是,但是,小菜集成之后进入地图显示黑屏,有放大缩小按钮,有高德地图的...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 178
精华内容 71
关键字:

高德地图demoandroid