百度——地图API——IOS v2.0.2—入门篇
建议高手飘过~~~~~~
本以为一个地图的helloworld很简单。实际使用却不是那么回事。就想把地图的头文件和静态库添加到文件中。应该就能用了。
baidu提供的xcode工程是支持ios4.3的。所以有挺多地方不同的。我的工程默认是6.1。可能也让我困惑了。
遇到三个问题:
1.添加的静态库不能编译通过。
2.号称离线地图。根本导入不进去。
3.按照上述配置,test工程启动之后还是网格
第一个问题:我们先来看看官方说明。
http://developer.baidu.com/map/sdkiosdev-2.htm
文中说明了三种方式。
引入静态库文件
百度MapAPI提供了模拟器和真机两中环境所使用的静态库文件,分别存放在libs/Release-iphonesimulator和libs/Release-iphoneos文件夹下。有两种方式可以引入静态库文件:
第一种方式:直接将对应平台的.a文件拖拽至XCode工程左侧的Groups&Files中,缺点是每次在真机和模拟器编译时都需要重新添加.a文件;
第二种方式:使用lipo命令将设备和模拟器的.a合并成一个通用的.a文件,将合并后的通用.a文件拖拽至工程中即可,具体命令如下:
lipo –create Release-iphoneos/libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a –output libbaidumapapi.a
第三种方式:
1.将API的libs文件夹拷贝到您的Application工程跟目录下
2.在XCode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-ObjC
3.设置静态库的链接路径,在XCode的Project -> Edit Active Target -> Build -> Search Path -> Library Search Paths中添加您的静态库目录,比如"$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)",$(SRCROOT)宏代表您的工程文件目录,$(EFFECTIVE_PLATFORM_NAME)宏代表当前配置是OS还是simulator
注:静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即将XCode的Project -> Edit Active Target -> Build -> GCC4.2 - Language -> Compile Sources As设置为"Objective-C++"
看看我们都干了什么?
这个目录BaiduMap_iOSSDK_v2.0.2_Lib下,有两个文件夹和一个bundle。对于我这等菜鸟开发者。当然是一股脑的都拷贝到工程目录下。或者一起拖动到xcode的工程目录下。
第一个和第二个方法都看似很简单。我选择第二种方式,删除了其他两个静态库。添加了合成的通用静态库。
添加上代码之后,出现:
根据你写的代码,出的错误也多。最少有个
BMKMapManager。
反过头来看看工程中的Frameworks选项。其实已经仅剩下一个a文件了。为什么啊?找了个公司的高手看了20分钟也没弄明白。回家多次尝试找到了解决方法。
解决方案:
因为xcode工程删除静态库的时候,删除的是引用,文件还在那里。而且工程又没那么智能。不能识别同名静态库版本。所以不能准确定位到合适的静态库版本。删除其他的静态库。仅留下通用的静态库文件在libs目录下就能够解决了。
第二个问题:启动起来,打开地图,一片网格。下载总是提示0 。也不知道在ios上开发这么费劲。打算下载离线地图文件,直接拷贝到文件夹。问题接踵而至。
1.下载离线地图,http://shouji.baidu.com/map/map.html?from=3052
2.找模拟器程序所在目录。我的工程是5.1的。GUI界面无法找到这个目录。需要命令行,原因未知。
cd ~/Library/Application Support/iPhone Simulator/5.1/Applications
剩下就是进入每个GUID看到底是不是iphonemapsdkdemo。如果是的话。进入这个应用的Documents。
3.把下载下来的地图文件拷贝到上面进入的目录即可,不要解压zip文件,直接扔到目录即可。官方说明:http://hi.baidu.com/baidumap/item/8961a0152fd2e1a5ffded525?1225
4.进入模拟器,启动百度demo,进入离线地图,导入提示找到一个地图导入0。以为百度不会这么弱智,地图已经在那里,怎么会不能用。重启一下试试,看看奇迹会不会出现?(什么,还是一片网格?别灰心,我和你是一样的。)
5.为什么导入失败呢?回头又看了一便过程。也许我们开始就下载错了。百度提供的demo,离线地图,北京16.1M。但是网上没有这个大小的地图。iphone3和3GS用的是
- 北京市(17.5M)。而iphone4以上,都是北京市(16.5M)。很自然的,我们都会选择16.5M的。我自己只能误打误撞了。下载了个17.5M的版本再试。
解决方案:
模拟器中,需要下载iphone3的地图包,也就是lv低分辨率版本。这次再导入,就能看到导入的地图了。如果以前下载过一直是0。最好把模拟器中应用目录全删了。重新构建项目。
第三个问题:经过不断奋斗,启动依然是网格线。为什么啊?
这个问题比较复杂。百度为了限制用户登陆。第一次使用百度离线地图。需要在线验证mananger里的key和你的工程名。
解决方案:
参考百度,配置key的方式。配置完成之后。你应该就能看到期待已久的离线地图了。
百度——地图API——IOS v2.0.2—入门篇的更多相关文章
- 百度离线地图API开发V2.0版本
全面介绍,请看下列介绍地址,改写目前最新版本的百度V2.0地图,已全面实现离线操作,能到达在线功能的95%以上 http://api.jjszd.com:8081/apituiguang/gistg. ...
- android 3.0+百度地图api地图如何移动到指定的经纬度处
由于百度地图api,2.0+和3.0+的改动比较大,api基本上被全换过了,有些同学可能2.0+的api使用的非常熟悉,但是更新到3.0+时,却会遇到一些小麻烦(由于api变了,你就需要重新学习它的a ...
- ios 百度地图api 入门
百度地图api 官方教程: http://developer.baidu.com/map/index.php?title=iossdk 这个非常好, 很适合新手 CLLocationCoordinat ...
- 基于百度地图api + AngularJS 的入门地图
转载请注明地址:http://www.cnblogs.com/enzozo/p/4368081.html 简介: 此入门地图为简易的“广州大学城”公交寻路地图,采用很少量的AngularJS进行inp ...
- 百度地图API新手入门
最近,共享单车着实火了一把,市场竞争也是异常的激烈,百花争艳,百家争鸣,群雄逐鹿,最后鹿死谁手,现在还不得而知,不过可以肯定的是细节决定成败,更重要的还在于用户的体验. 用过的同学们都会知道,打开共享 ...
- ExtJs 4.0 DeskTop集成 百度地图API
经过3天的奋斗最终搞了出来, 网上的资料非常少,希望小⑦的文章对读者有点帮助,PS:小⑦非常努力的~. 不废话,上代码了. 首先.去百度官网Copy一个模版 http://api.map.baidu. ...
- [ActionScript 3.0] AS3调用百度地图API
package { import baidu.map.basetype.LngLat; import baidu.map.basetype.Size; import baidu.map.config. ...
- Winform实现用多线程、百度地图API解析某公司的物理地址
前言 作为一个很挫的C#新手总喜欢自己写点儿不着边际的东西,本人是个新手加菜鸟,写B/S的,工作中,任务完成了,空闲下来,总想继续学点儿什么,由此触发了本篇文章了.个人一直认为,.NET中,C/S所要 ...
- C#调用百度地图API经验分享(一)
最近客户提了一个需求,要在网站中添加百度地图的显示,其实原来是有谷歌地图的,但由于谷歌在大陆遭到封杀,只好再给用户增加一个选择了. 下面我将自己最近整理的一些知识分享给大家. 如何使用百度地图API: ...
随机推荐
- 【Web】十步教你搭建完整免费的个人网站(花生壳+XAMPP+WordPress)
1.从花生壳官网(http://www.oray.com/peanuthull/download.php)下载最新版本的客户端. 下载完成后安装,注册护照(需手机验证码验证),注册完成后获取免费域名并 ...
- objective-C学习笔记(九)ARC
ARC叫自动引用计数Automatic Reference Counting.针对堆上的对象,管理对象的创建和释放. 哪些对象受ARC管理: OC对象指针 Block指针 使用_attribute_( ...
- java线程的使用(Runnable)
在实际项目开发过程中,线程是经常要用到的,特别是为了不影响项目的运行效果. 以下就以实际项目中的简单例子来介绍: public class SystemRedisInfoController exte ...
- python下读取excel文件
项目中要用到这个,所以记录一下. python下读取excel文件方法多种,用的是普通的xlrd插件,因为它各种版本的excel文件都可读. 首先在https://pypi.python.org/py ...
- html img 使用data格式加载图片
背景 这久闲来无事给一位客户测试一款体检软件,是winform结构的,其中有一个功能是需要把生成的体检报告导出为html格式.测试导出后直接在谷歌浏览器里查看,体检详细内容.医生签名.条形码都能正常显 ...
- curl 返回响应头
demo:/root# curl -i baidu.com HTTP/1.1 200 OK Date: Wed, 27 Jul 2016 08:50:03 GMT Content-Type: text ...
- ThinkPHP 3.1.2 视图-2
一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl) 更换模板文件 ...
- JAVA GUI学习 - 窗口【x】按钮关闭事件触发器:重写processWindowEvent(WindowEvent e)方法
public class WindowListenerKnow extends JFrame { public WindowListenerKnow() { this.setBounds(300, 1 ...
- Desert King(最优比率生成树)
Desert King Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 22717 Accepted: 6374 Desc ...
- MyReport报表引擎2.6.5.0新功能
新的文本渲染引擎,打印旋转时保持文本高精度矢量输出,打印更清晰. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva29uZ195ZWU=/font/5a6 ...