随笔 - 632  文章 - 17  评论 - 54  阅读 - 93万

Android 高德地图显(Maps)初步

高德地图 Android API 是一套简单的地图应用开发调用接口,可支持地图显示与操作,兴趣点搜索,地理编码与基站定位等功能;开发者可以轻松地将其嵌入自己的应用程序,而且提供稳定的位置及地图应用程序。且提供详细的中文帮助文档。闲话少说,现在我们就开始高德地图开发之旅:

1.在浏览器中输入以下网址http://api.amap.com/Android/download下载高德地图API开发包

2.新建android项目并将MapApi.jar导入到项目中

3.新建一个类并让其继承MapActivity(MapActivity 是一个抽象类,任何想要显示MapView 的activity 都需要派生自MapActivity。并且在其派生类的onCreate() 中,都要创建一个MapView 实例。)例如:

复制代码
package com.demo.amap;

import com.amap.mapapi.core.GeoPoint;
import com.amap.mapapi.map.MapActivity;
import com.amap.mapapi.map.MapController;
import com.amap.mapapi.map.MapView;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class AmapActivity extends MapActivity {
    private MapView mapView;
    private MapController mapController;
    private GeoPoint geoPoint;
    /** 
    *显示栅格地图,启用内置缩放控件,并用MapController 控制地图的中心点及Zoom 级别  
    */ 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        //设置地图显示模式
        this.setMapMode(MAP_MODE_VECTOR);//矢量显示
        //this.setMapMode(MAP_MODE_BITMAP);//栅格显示
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_amap);
        mapView = (MapView)findViewById(R.id.mapView);
        mapView.setBuiltInZoomControls(true);//设置启用内置缩放控件
        mapController = mapView.getController();//得到mapview的控制权,可以用它来控制和驱动平移和缩放
        geoPoint = new GeoPoint((int) (39.982378 *  1E6),  
                (int) (116.304923 * 1E6));//用给定的经纬度构造一个GeoPoint,单位是微度(度* 1E6)
        mapController.setCenter(geoPoint);//设置地图中心
        mapController.setZoom(12);//设置缩放级别地图级别
        
        
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_amap, menu);
        return true;
    }
}
复制代码

4.在布局文件中加入MapView,例如:

复制代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:autonavi="http://schemas.android.com/apk/res/com.AMap"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
    
    <com.amap.mapapi.map.MapView android:id="@+id/mapView"  
    android:layout_width="fill_parent" android:layout_height="fill_parent"   
    android:clickable="true"     
    /> 
</LinearLayout>
复制代码

5.在Androidmanfest.xml中加入所需要的权限

复制代码
<uses-permission   
    android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>   
    <uses-permission    
    android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>  
    <uses-permission    
    android:name="android.permission.INTERNET"></uses-permission>  
    <uses-permission    
    android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  
    <uses-permission    
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>  
    <uses-permission    
    android:name="android.permission.READ_PHONE_STATE"></uses-permission>  
    <uses-permission    
    android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  
    <uses-permission    
    android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  
复制代码

到目前为止所有的准备工作都已经完成了,接下来只需要运行一下就行了,运行后的图片如下:

 

备注:如果有疑问可参考高德地图的官方网站:http://api.amap.com/Android

posted on   飘杨......  阅读(733)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示