zoukankan      html  css  js  c++  java
  • 高德地图Android第一步

    本文介绍高德地图入门第一步,从申请高德开发者到显示地图。

    首先,注册申请开发者。高德地图开发者平台的邮件系统好像不太稳定,邮件验证经常有问题,网上也有比较多的人反应这个问题。解决方法:高德的FAQ常见问题中有如下问题“注册时收不到邮箱验证码怎么办?”,按照提供的几个方法操作便可以申请好开发账号。

    第二步,下载、搭建环境,按照开发者指南中的配置工程操作即可。在这个步骤中需要使用到高德地图的KEY,在高德地图开放平台的Console中有申请KEY的页面。申请KEY的时候需要使用Android应用发布版和调试版本的安全码SHA1。安全码的获取需要用到java中的keytool。

    调试版本的SHA1获取很方便,在cmd中切换到用户目录下的.android目录中,运行命令:

    keytool -list  -v -keystore debug.keystore

    即可获得调试版本的SHA1码。

    发布版的SHA1需要用自己的keystore。如果有现有的keystore,利用如下命令获取SHA1码即可:

    keytool -list  -v -keystore 现有的keystore

    如果没有现有的keystore,就需要自己生成keystore,利用如下命令:

    keytool -genkey -alias android.keystore  -keyalg RSA -validity 20000 -keystore android.keystore

    其中-alias android.keystore为生成keystore的别名;-keyalg RSA是加密和数字签名的算法;-validity 20000是有效天数。此命令还有其他选项可选,具体参考keytool的用法。

    在生成自己的keystore之后利用调试版的SHA1获取方式获取自己的keystore的SHA1码即可。

    然后就可以在Console中申请到自己的KEY了。最后将key插入到工程中的Manifest中即可。

     <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme"
            android:hardwareAccelerated="false"
            >
            <meta-data
                android:name="com.amap.api.v2.apikey"
                android:value="你的KEY"
                />
    
            <activity android:name=".MainActivity">

    最后,参考地图显示加入相应代码,在使用高德地图Android SDK的时候需要注意文档中的一句话:

    使用 MapView 类,必须重载 Activity 生命周期的所有方法,有 onCreate(),onDestroy(),onResume(),onPause(),onSaveInstanceState()。

    如果不继承这些生命周期,地图显示不出来。

    最后给出相应代码仅供参考:

    首先是activity_main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        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"
        android:orientation="vertical"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context="com.ibike.ibike.MainActivity">
    
        <com.amap.api.maps.MapView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>

    MainActivity.java:

    public class MainActivity extends AppCompatActivity {
        private MapView mapView;
        private AMap aMap;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mapView = (MapView) findViewById(R.id.map);
            mapView.onCreate(savedInstanceState);
            init();
        }
    
        private void init(){
            if(aMap == null){
                aMap = mapView.getMap();
            }
        }
    
        /**
         * 方法必须重写
         */
        @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
            mapView.onResume();
        }
    
        /**
         * 方法必须重写
         */
        @Override
        protected void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
            mapView.onPause();
        }
    
        /**
         * 方法必须重写
         */
        @Override
        protected void onSaveInstanceState(Bundle outState) {
            // TODO Auto-generated method stub
            super.onSaveInstanceState(outState);
            mapView.onSaveInstanceState(outState);
        }
    
        /**
         * 方法必须重写
         */
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            mapView.onDestroy();
        }
    }
  • 相关阅读:
    是否有人会想起
    春风下也有落叶
    to kongove:呵呵~是啊,偶尔吹得玩下,仅当娱乐而已……
    木头人の狂想
    夜行静思湖
    [学习标准库]math.h
    [学习标准库]ctype.h
    [学习标准库]stdio.h
    句子
    [学习标准库]assert.h
  • 原文地址:https://www.cnblogs.com/lafido/p/5134488.html
Copyright © 2011-2022 走看看