百度地图服务详细评测

综合评测

百度地图是一款功能齐全,支持离线的常用地图服务。其具备以下特点:

1.百度地图是一款免费使用的跨Android,IOS的地图服务

2. 对于客户端而言,其最新版本(baidumapapi_v2_4_1.jar,

      locSDK_3.1.jar,libBaiduMapSDK_v2_4_1.so, liblocSDK3.so)大小为2.10MB,对APP安装包而言体积增加1521KB,对客户端体积有一定影响。

3.百度提供全景地图和多数城市实时路况显示

4.路线查询会免费发送到手机上,非常人性化。

5.百度地图官方网站提供SDK包和在线文档,方便开发者下载以及在线查阅。

6.百度地图版本更新及时,最新版本为:Android V2.4.1,IOS V2.2.0

b.开发建议

1.百度地图使用的是面向接口的框架,无论是IOS还是安卓开发者,都必须具备熟练的OO编程功底,特别是面向对象的多态性和方法重写,如果不理解常用的设计模式和架构,对于该平台的掌握会稍微吃力。

扫描二维码关注公众号,回复: 583508 查看本文章

2.建议熟悉JAVA,C#,ruby等面向对象开发者使用,对英文功底要求不高

3.如果熟悉基于配置的应用程序框架,那么使用本服务会事半功倍。

评测环境与基本参数

百度地图基本参数

是否免费

免费

支持平台

Android,iOS

支持离线地图导入

支持

支持卫星模式

支持

支持公交详情检索

支持

支持城际实时路况

支持全国47个城市实时路况的显示。

支持3D矢量地图渲染,支持离线

支持

支持地图截图

支持

支持短串分享

支持

LBS云检索

支持

支持自定义paopaoview弹出框

支持

支持公交、驾车、步行路线查询

支持

支持弧线绘制

支持

评测环境-----高速WIFI

测试环境:

Windows 7旗舰版(64x)+Eclipse+ I9000

测试对象

百度地图服务

测试手机

三星Galaxy S I9000

系统版本

4.2.1

手机网络

WIFI

测试方法

客户端运行地图DEMO +触屏测试API接口

测试时间

2014-2-26 22:02-22:34

测试环境-----日常2G网络

测试环境:

Windows 7旗舰版(64x)+Eclipse+ I9000

测试对象

百度地图服务

测试手机

三星Galaxy S I9000

系统版本

4.2.1

手机网络

2G

测试方法

客户端运行地图DEMO +触屏测试API接口

测试时间

2014-2-26 23:16-23:28

三.客户端集成:

     第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;


<!--[endif]-->

第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_vX_X_X.jar,确定后返回。

通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

第三步:如何显示地图

    百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:

    第一步:创建并配置工程

    第二步:在Manifest中添加使用权限、Android版本支持和对应的开发密钥;

常用使用权限如下(开发者可根据自身程序需求,添加所需权限):

 

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />

    <uses-permission android:name="android.permission.USE_CREDENTIALS" />

    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />

 

    <permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >

    </permission>

 

    <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >

    </uses-permission>

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >

    </uses-permission>

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >

    </uses-permission>

    <uses-permission android:name="android.permission.INTERNET" >

    </uses-permission>

    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" >

    </uses-permission>

    <!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> -->

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >

    </uses-permission>

    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />

    <uses-permission android:name="android.permission.WAKE_LOCK" >

    </uses-permission>

    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permission android:name="android.permission.ACCESS_GPS" />

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <uses-permission android:name="android.permission.READ_CONTACTS" />

    <uses-permission android:name="android.permission.CALL_PHONE" />

    <uses-permission android:name="android.permission.READ_SMS" />

    <uses-permission android:name="android.permission.SEND_SMS" />

    <!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? -->

    <uses-permission android:name="android.permission.GET_TASKS" />

    <uses-permission android:name="android.permission.CAMERA" >

    </uses-permission>

    <uses-permission android:name="android.permission.RECORD_AUDIO" >

    </uses-permission>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >

    </uses-permission>

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <uses-permission android:name="android.permission.BROADCAST_STICKY" />

    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    <!-- 来电消音 -->

    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" >

    </uses-permission>

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<!--使用网络功能所需权限  -->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">

</uses-permission>

<uses-permission android:name="android.permission.INTERNET">

</uses-permission>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">

</uses-permission>

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE">

</uses-permission>

<!-- SDK离线地图和cache功能需要读写外部存储器 -->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">

</uses-permission>

<uses-permission android:name="android.permission.WRITE_SETTINGS">

</uses-permission>

<!-- 获取设置信息和详情页直接拨打电话需要以下权限  -->

<uses-permission android:name="android.permission.READ_PHONE_STATE">

</uses-permission>

<uses-permission android:name="android.permission.CALL_PHONE">

</uses-permission>

<!-- 使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项 -->

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">

</uses-permission>

<permission android:name="android.permission.BAIDU_LOCATION_SERVICE">

</permission>

<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE">

</uses-permission>

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION">

</uses-permission>

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">

</uses-permission>

<uses-permission android:name="android.permission.ACCESS_GPS"/>                 

配置Activity:

 

        <activity

            android:name="baidumapsdk.demo.BaseMapDemo"

            android:configChanges="orientation|keyboardHidden"

            android:label="@string/demo_name_basemap"

            android:screenOrientation="sensor" >

        </activity>

<activity android:name=".MapDemo"

          android:screenOrientation="sensor"

          android:configChanges="orientation|keyboardHidden">

</activity>

添加屏幕及版本支持:

    <supports-screens

        android:anyDensity="true"

        android:largeScreens="true"

        android:normalScreens="false"

        android:resizeable="true"

        android:smallScreens="true" />

<supports-screens android:largeScreens="true"

                     android:normalScreens="true"

                     android:smallScreens="true"

                     android:resizeable="true"

                     android:anyDensity="true"/>

<uses-sdk android:minSdkVersion="7"></uses-sdk>

添加对应的开发密钥:

          <meta-data

            android:name="com.baidu.lbsapi.API_KEY"

            android:value="NEDRLaZHG9srKsLKomxGaSag" />

第三步:在布局xml文件中添加地图控件,布局文件保存为activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

  xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent">

   

     <com.baidu.mapapi.map.MapView android:id="@+id/bmapView"

       android:layout_width="fill_parent" android:layout_height="fill_parent"

       android:clickable="true"    

/>

</LinearLayout>

a.测试截图

 

 b.遇到的问题

1.  liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。

2. 注意:由于adt插件升级,若您使用Eclipse adt 22的话,需要对开发环境进行相应的设置,方法如下:

       在Eclipse 中选中工程,右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态Project -> clean-> clean all .

  c.上手难易

     百度地图使用难度中等,对于掌握面向接口开发的人来说,需要边查阅文档边开发。

  d.花费时间

     对于熟悉面向对象开发和基于配置的编程模型的开发者而言,大约需要一个小时即可完成集成到客户端。

  e.开发支持和文档

 

   百度地图服务提供Android,IOS两个平台的SDK,在线文档,FAQ。其中,其中Android SDK包里包括如下内容:

 

测试日志截图如下:

 

 

<!--[if !supportLists]-->四.  <!--[endif]-->功能测试

基本地图功能

 

 

图层展示(普通地图\卫星地图)

 

 

地图操作

 

 

定位/导航

 

自定义绘制

 

 

 更多测试详情可访问:www.devstore.cn酷

 

猜你喜欢

转载自devstore.iteye.com/blog/2057157