高德地图是一款功能齐全,支持离线的常用地图服务。其具备以下特点:
1.高德地图是一款免费使用的跨Android,IOS,WindowsPHONE三大移动平台的地图服务
2.其最新版本的Android库文件AMap_Android_3DMap_Lib_V2.2.0大小为1.77MB, AMap_Android_2DMap_Lib_V2.2.0大小为572 KB.
3.高德提供2D,3D离线地图支持
4.特色功能:路径规划,兴趣点搜索,坐标/地址查询,离线地图,团购搜索
5.高德地图官方网站提供SDK包,实例代码,开发指南,参考手册,方便开发者下载以及在线查阅。
6.高德地图版本更新及时,最新版本为:Android V2.2.0,IOS V2.2.0
开发建议
1.高德地图使用的是面向接口的框架,其ViewMap类作为核心类,需要重写Activity生命周期的所有方法,这要求开发者具备面向对象多态性,继承性的功底。如果不理解常用的设计模式和架构,对于该平台的掌握会稍微吃力。
2.建议熟悉JAVA,C#,Object-c等面向对象开发者使用,对英文功底要求略高
基本参数:
是否免费 | 免费 |
支持平台 | Android,iOS,WindowsPhone |
支持离线地图导入 | 支持 |
支持卫星模式 | 支持 |
支持公交详情检索 | 支持 |
支持城际实时路况 | 支持全国主要城市实时路况的显示。 |
支持3D矢量地图渲染,支持离线 | 支持 |
支持地图截图 | 支持 |
支持短串分享 | 支持 |
LBS云检索 | 支持 |
支持自定义paopaoview弹出框 | 支持 |
支持公交、驾车、步行路线查询 | 支持 |
支持弧线绘制 | 支持 |
WIFI网络下:
测试环境 | Windows 7旗舰版(64x)+Eclipse+ I9000 |
测试对象 | 高德地图服务 |
测试手机 | 三星Galaxy S I9000 |
系统版本 | 4.2.1 |
手机网络 | WIFI |
测试方法 | 客户端运行地图DEMO +触屏测试API接口 |
测试时间 | 2014-3-26 19:02-19:24 |
2G网络下:
测试环境 | Windows 7旗舰版(64x)+Eclipse+ I9000 |
测试对象 | 高德地图服务 |
测试手机 | 三星Galaxy S I9000 |
系统版本 | 4.2.1 |
手机网络 | 2G |
测试方法 | 客户端运行地图DEMO +触屏测试API接口 |
测试时间 | 2014-3-26 19:26-19:38 |
一 客户端集成
1.从网站下载并解压得到地图显示包“ Android_Map_V2.x.x.jar ”、搜索包“ Android_Services_V2.x.x.jar”和文件夹“ armeabi ”(含 libamapv3.so 和 libmapv3ex.so 文件)。
2.开发工程中新建“ libs ”文件夹,将地图显示包、搜索包和“ armeabi ”拷贝到 libs 的根目录下。拷贝完成后的工程目录(以 V2.1.0 为例)如图所示:
3.添加用户 Key。在工程的“ AndroidManifest.xml ”文件如下代码中添加您的用户 Key。
1. <application
2. android:icon="@drawable/icon"
3. android:label="@string/app_name" >
4. <meta-data
5. android:name="com.amap.api.v2.apikey"
6. android:value="请输入您的用户Key"/>
7.
8. <activity android:name="com.amap.demo.LocationManager" >
9. <intent-filter>
10. <action android:name="android.intent.action.MAIN" />
11. <category android:name="android.intent.category.LAUNCHER" />
12. </intent-filter>
13. </activity>
14. </application>
4.添加权限。在工程的“ AndroidManifest.xml ”文件中进行添加,请直接拷贝。
1. <uses-permission android:name="android.permission.INTERNET" />
2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
4. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
5. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
6. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
7. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
8. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
9. <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
二 测试截图
三 遇到的问题
1. 注意:由于adt插件升级,若您使用Eclipse adt 22的话,需要对开发环境进行相应的设置,方法如下:
在Eclipse 中选中工程,右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态Project -> clean-> clean all .
四 上手难易
高德地图使用难度中等,尤其要注意,使用MapView类时,要重写Activity生命周期的所有方法。熟练掌握面向接口开发的人来,可以边查阅文档边开发。
五 花费时间
对于熟悉面向对象开发和基于配置的编程模型的开发者而言,大约需要一个小时即可完成集成到客户端。
六 开发支持和文档
高德地图服务提供Android,IOS,WindowsPhone三个平台的SDK,在线文档,学习指南等,如图说示:
测试日志截图如下:
测试DEMO 1
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.amapv2.apis"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<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.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/demo_title" >
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="525a55dc9fcd38366a3fae2faf37c24d" />
<!--
在android4.0以上系统中的 Activity加上下面这句,可以支持地图横竖屏切换
android:configChanges="orientation|keyboardHidden|screenSize"
例如:
<activity
android:name=".basic.BasicMapActivity"
android:label="@string/basic_map"
android:configChanges="orientation|keyboardHidden|screenSize" />
-->
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".basic.BasicMapActivity"
android:label="@string/basic_map"
android:screenOrientation="portrait" />
<activity
android:name=".basic.CameraActivity"
android:label="@string/camera_demo"
android:screenOrientation="portrait" />
<activity
android:name=".basic.EventsActivity"
android:label="@string/events_demo"
android:screenOrientation="portrait" />
<activity
android:name=".basic.LayersActivity"
android:label="@string/layers_demo"
android:screenOrientation="portrait" />
<activity
android:name=".basic.MapOptionActivity"
android:label="@string/mapOption_demo"
android:screenOrientation="portrait" />
<activity
android:name=".basic.ScreenShotActivity"
android:label="@string/screenshot_demo"
android:screenOrientation="portrait" />
<activity
android:name=".basic.OpenglActivity"
android:label="@string/opengl_demo"
android:screenOrientation="portrait" />
<activity
android:name=".basic.UiSettingsActivity"
android:label="@string/uisettings_demo"
android:screenOrientation="portrait" />
<activity
android:name=".overlay.MarkerActivity"
android:label="@string/marker_demo"
android:screenOrientation="portrait" />
<activity
android:name=".overlay.PolylineActivity"
android:label="@string/polyline_demo"
android:screenOrientation="portrait" />
<activity
android:name=".overlay.GroundOverlayActivity"
android:label="@string/groundoverlay_demo"
android:screenOrientation="portrait" />
<activity
android:name=".overlay.TileOverlayActivity"
android:label="@string/tileoverlay_demo"
android:screenOrientation="portrait" />
<activity
android:name=".overlay.PolygonActivity"
android:label="@string/polygon_demo"
android:screenOrientation="portrait" />
<activity
android:name=".overlay.CircleActivity"
android:label="@string/circle_demo"
android:screenOrientation="portrait" />
<activity
android:name=".location.LocationSourceActivity"
android:label="@string/locationsource_demo"
android:screenOrientation="portrait" />
<activity
android:name=".location.LocationGPSActivity"
android:label="@string/locationGPS_demo"
android:screenOrientation="portrait" />
<activity
android:name=".location.LocationNetworkActivity"
android:label="@string/locationNetwork_demo"
android:screenOrientation="portrait" />
<activity
android:name=".geocoder.GeocoderActivity"
android:label="@string/geocoder_demo"
android:screenOrientation="portrait" />
<activity
android:name=".route.RouteActivity"
android:label="@string/route_demo"
android:screenOrientation="portrait" />
<activity
android:name=".busline.BuslineActivity"
android:label="@string/busline_demo"
android:screenOrientation="portrait" />
<activity
android:name=".poisearch.PoiKeywordSearchActivity"
android:label="@string/poikeywordsearch_demo" />
<activity
android:name=".poisearch.PoiAroundSearchActivity"
android:label="@string/poiaroundsearch_demo" />
<activity
android:name=".offlinemap.OfflineMapActivity"
android:label="@string/offlinemap_demo"
android:screenOrientation="portrait" />
</application>
</manifest>
|
基本地图功能
图层展示(普通地图\卫星地图)
实时交通
地位\导航
路径规划\公交查询\地理编码