假期学习记录01(地图显示和基本的配置)

项目使用的是高德地图的插件,因为百度地图的开发文档我看不懂(其实高德的也看不懂)

首先要注册成为高德的开发者,直接去高德开发平台注册便可。高德开发平台网址:https://lbs.amap.com/

基本的配置高德开发平台上也比较清晰。在这里我记录一种sha1值的获取方式(个人认为比较简洁)

首先win+R输入cmd打开命令提示符

然后输入 cd  .android

然后输入keytool -list -v -keystore debug.keystore

此时要求输入密码一般默认密码是android此时就会出现sha1的值了,我们在填写高德开发平台添加key时会让输入开发和调试的sha1的值,一般在不上架的情况下填写一样的就好,下面附图

填写完信息后我们开始配置本地的androidstdio

我们需要在高德地图网站上下载一些sdk,网站https://lbs.amap.com/api/android-sdk/download/

将下载下来的文件拷贝到我们的项目中,位置如下,jar包放在libs下其他文件放在jniLibs下,没有这个目录就新建一个

添加完文件点击android stdio上面倒数第四个图标将我们导入的jar包添加一下。

在AndroidManifest中添加如下代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lastgps">
    <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: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="申请的key值">
        </meta-data>
    </application>

</manifest>

在project的build.gradle中配置repositories,添加仓库地址

allprojects {
    repositories {
        jcenter() // 或者 mavenCentral()
    }
 }

 在工程中的build.gradle中配置dependencies代码如下(3d地图,具体看高德开发文档)

android {
    defaultConfig {
        ndk {
            //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
            abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
        }
    }
}

 此时基本的配置就完成了

===============================================================================================================================================================

接下来在手机上显示地图(以下代码来自高德地图开发文档)

layout文件中添加一个mapview的控件

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

 如果没有这个控件那就是本地的包还没有导入

在java代码中代码如下

package com.example.lastgps;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MapView mapView = (MapView) findViewById(R.id.mymapview);
        mapView.onCreate(savedInstanceState);// 此方法必须重写
        AMap aMap = mapView.getMap();

        aMap.setTrafficEnabled(true);// 显示实时交通状况
        //地图模式可选类型:MAP_TYPE_NORMAL,MAP_TYPE_SATELLITE,MAP_TYPE_NIGHT
        aMap.setMapType(AMap.MAP_TYPE_SATELLITE);// 卫星地图模式
    }
}

 运行结果如下

 

posted @ 2020-02-01 21:43  王怀宇  阅读(144)  评论(0编辑  收藏  举报