欢迎访问 夜阑小雨 我的学习碎片档案,这里记录了我的学习内容和工作中经验,希望给您带去帮助。

phonegap-百度地图插件-IOS版

ios 夜阑小雨 3918℃

phonegap-百度地图插件-IOS版

经过一周时间的折腾,终于再摸索和学习中把百度地图插件IOS版开发完成。

其中遇到各种悲催的问题,有一些是百度地图自身的,不过经过查阅资料,弄好了。

该插件调用百度地图sdk实现 1.位置标记 2.位置定位  3.路径导航:包括自驾,公交,步行路线等

1 2 3

4 5

 

集成如下:[如有错误或不清楚的地方可以参考压缩包中 iOS开发教程.pdf ]

1.首先需要去百度开放平台申请一个动版开发密钥(Key),这个会在调用地图的时候使用。

http://developer.baidu.com/map/index.php?title=iossdk/guide/key

2. 其中 inc 文件夹拖放到你的项目根目录下面,.h 文件即为需要导入头文件,将 inc 文件夹拷入到您的工程根目录下。

同时设置头文件的链接路径,在 Xcode 的 Project -> Edit Active Target -> Build Settings -> Search Path -> Header Search Paths 中添加头文件目录:
“$(SRCROOT)/inc”
其中$(SRCROOT)宏代表您的工程文件所在目录。

3.导入静态库文件.

libs 文件夹拖放到项目的根目录下面,

设置静态库的链接路径,在 Xcode 的 Project -> Edit Active Target -> Build Settings -> Search Path -> Library Search Paths 中添加您的静态库目录。

添加内容如下:
“$(SRCROOT)/libs/Release$(EFFECTIVE_PLATFORM_NAME)”
其中, $(SRCROOT)宏代表您的工程文件目录, $(EFFECTIVE_PLATFORM_NAME)
宏代表当前配置是 OS 还是 simulator,在编译时编译器会根据您当前的编译环境
自动匹配合适的.a 文件。

这里需求注意当你拖放libs文件夹到项目后,系统会默认给添加2条记录,需要删掉,不然会报错。

4. 将mapapi.bundle拖放拷贝到您的工程根目录。

5. 导入 framework。

在 XCode 的 Project -> Edit Active Target -> Build Phases ->Link Binary With Libraries->点击下方的[+]添加即可

CoreLocation.framework 、 QuartzCore.framework 、 SystemConfiguration.framework、 CoreGraphics.framework、 OpenGLES.framework

MessageUI.framework, Security.framework

6.还需要在做一些配置:

  • 在Xcode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-ObjC
  • 请将 Xcode5 的 Project -> Edit Active Target -> Build Settings -> Linking -> Other Linker Flags 中的”-ObjC”修
    改为”-all_load”;
  • 自iOS SDK v2.5.0起,为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下: 需要在info.plist里添加:NSLocationWhenInUseUsageDescription ,yesNSLocationAlwaysUsageDescription ,yes
  • 在使用Xcode6进行SDK开发过程中,需要在info.plist中添加:Bundle display name ,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager start failed)

7.添加插件文件:

将src 拖放到项目的plugins里面,选择拷贝进去目录下面

8.修改AppDelegate.h 和 AppDelegate.m。根据说明修改。这里的代码是用来百度地图初始化。

9.添加插件引入:(根据pg版本不一样略有不同)

<plugin name=”Pgbaidumap” value=”Pgbaidumap” />

10.引入js文件到你的项目html页面。

添加js方法如下:

function bdmap(){

var title= “标题”; //非必须,可以随意填写

var city = “西安市”; //非必须,可以随意填写

var address = “西安高新区科技四路72号”; //非必须,可以随意填写

var lat = “34.231393”; //必须精准

var lon = “108.885194”; //必须精准

window.plugins.Pgbaidumap.map(
title,city,address,lat,lon,
function(success) {
}, function(fail) {

alert(“encoding failed: ” + fail);
}
);

}

11.这样就可以实现了百度地图的调用,另外可以基于这个插件,开发更多功能,只有百度地图的SDK拥有的都可以添加进去。

测试的时候最好用真机测试,模拟器有时候取不到信息。

 

转载请注明:夜阑小雨 » phonegap-百度地图插件-IOS版

喜欢 (0)or分享 (0)