一、在高德开发平台注册
高德开发平台 二、新建应用,获取key
三、在Android studio中 打开“AndroidManifest.xml” 添加如下代码:

3.1  添加高德 key  在application标签中配置Key:
<application
         android:icon="@drawable/icon"
         android:label="@string/app_name" >
         <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="请输入您的用户Key"/>
</application>
3.2  在AndroidManifest.xml中配置权限:
<!-- 用于进行网络定位 -->
    <uses-permission
        android:name="android.permission.ACCESS_COARSE_LOCATION" >
    </uses-permission>
    <!-- 用于访问GPS定位 -->
    <uses-permission
        android:name="android.permission.ACCESS_FINE_LOCATION" >
    </uses-permission>
    <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
    <uses-permission
        android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
    <uses-permission
        android:name="android.permission.ACCESS_WIFI_STATE" >
    </uses-permission>
    <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
    <uses-permission
        android:name="android.permission.CHANGE_WIFI_STATE" >
    </uses-permission>
    <!-- 用于访问网络,网络定位需要上网 -->
    <uses-permission
        android:name="android.permission.INTERNET" >
    </uses-permission>
    <!-- 用于读取手机当前的状态 -->
    <uses-permission
        android:name="android.permission.READ_PHONE_STATE" >
    </uses-permission>
    <!-- 写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据 -->
    <uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
3.3 需要定位 在application标签中声明service组件
<service android:name="com.amap.api.location.APSService"></service>
XML文件就设置结束了

四、下载开发包
SDK 相关下载 五、将 jar包添加到 lib 文件夹中 手动导入

unity tilemap显示高德地图 unity高德地图sdk_开发


六、将so文件导入jniLIbs文件夹中 (新建这个 文件夹)

unity tilemap显示高德地图 unity高德地图sdk_开发_02


七、在layout 布局文件中 添加地图容器

在使用2d地图时控件为:

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

    </com.amap.api.maps2d.MapView>

在使用3d地图时控件为:

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

    </com.amap.api.maps.MapView>

将2d取消即可
八、MainActivity编程 显示地图

MapView mMapView = null;//地图容器
AMap aMap;//地图对象
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
```//mMapView地图容器  aMap地图对象
        mMapView = findViewById(R.id.map);
        mMapView.onCreate(savedInstanceState);
        aMap = mMapView.getMap();
     }   
     //这时已经可以显示地图了

九、添加定位

aMap.setMyLocationEnabled(true);//显示定位层并且可以触发定位
aMap.moveCamera(CameraUpdateFactory.zoomTo(17));//显示地图缩放比例
```java
为Activity添加接口
public class MainActivity extends AppCompatActivity implements AMapLocationListener,LocationSource {
这时程序会提醒添加方法 
添加三个方法

1、
@Override
    public void activate(OnLocationChangedListener onLocationChangedListener) {
        initLocation();
    }
```public void initLocation() {
        //aMapLocationClient定位客户端 aMapLocationClientOption客户端定位模式
        aMapLocationClientOption = new AMapLocationClientOption();//初始化定位参数
        aMapLocationClientOption.setLocationMode(AMapLocationMode.Battery_Saving);//定位模式高精度
        aMapLocationClientOption.setSensorEnable(true);
        aMapLocationClientOption.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.Sport);

        aMapLocationClient = new AMapLocationClient(this);
        aMapLocationClient.setLocationListener(this);//设置定位监听


        aMapLocationClient.setLocationOption(aMapLocationClientOption);  //设置定位参数
        aMapLocationClient.startLocation();//启动定位
    }
2、
@Override
    public void deactivate() {
        aMapLocationClient=null;
        mListener = null;
    }
3、
@Override
    public void onLocationChanged(AMapLocation aMapLocation) {
        if (aMapLocation != null) {
            if (aMapLocation.getErrorCode() == 0) {

                mListener.onLocationChanged(aMapLocation);
                //定位成功回调信息,设置相关消息
                aMapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表
                aMapLocation.getLatitude();//获取经度
                aMapLocation.getLongitude();//获取纬度;
                aMapLocation.getAccuracy();//获取精度信息
                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date = new Date(aMapLocation.getTime());
                df.format(date);//定位时间
                aMapLocation.getAddress();//地址,如果option中设置isNeedAddress为false,则没有此结果
                aMapLocation.getCountry();//国家信息
                aMapLocation.getProvince();//省信息
                aMapLocation.getCity();//城市信息
                aMapLocation.getDistrict();//城区信息
                aMapLocation.getRoad();//街道信息
                aMapLocation.getCityCode();//城市编码
                aMapLocation.getAdCode();//地区编码
                Toast.makeText(MainActivity.this, " 位置更新! ", Toast.LENGTH_LONG).show();

            }
        } else {
            Toast.makeText(MainActivity.this, " error ", Toast.LENGTH_LONG).show();
        }
    }
```这时 还需要从lib里导入一些包,程序就能定位了
第一次尝试