百度——地图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: ...
随机推荐
- ASP.NET性能监视参数详解
性能监视器- Performance Monitor 性能监视器是Windows自带的系统资源和性能监视工具. 性能监视器能够量化地提供CPU使用率, 内存分配状况, 异常派发情况, 线程调度频率等信 ...
- 【转】CoreData以及MagicalRecord (二)
3. 运行时类与对象 NSManagedObject Managed Object 表示数据文件中的一条记录,每一个Managed Object在内存中对应的实体(Entity)的一个数据表示.Man ...
- VS2012 内容存储区指定的位置无效或者您无权访错误
——解决由于移动过microsoft help viwer( msdn )数据目录,又误删除数据目录后,引发其不能启动问题 1.使用命令行下载microsoft help viwer( msdn )数 ...
- HDU 2841 Visible Trees(莫比乌斯反演)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2841 题意:给n*m的矩阵(从(1,1)开始编号)格子,每个格子有一棵树,人站在(0,0)的位置,求可 ...
- Bandwidthd+Postgresql数据库配置笔记
Bandwidthd+Postgresql数据库配置笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/zjianbo/article/detai ...
- DB2 VC++ 中连接字符串
根据你安装的驱动,有如下两种连接字符串形式.Provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=xxx.xxx.xxx. ...
- poj 1041 John's trip 欧拉回路
题目链接 求给出的图是否存在欧拉回路并输出路径, 从1这个点开始, 输出时按边的升序输出. 将每个点的边排序一下就可以. #include <iostream> #include < ...
- A Byte of Python 笔记(7)数据结构:列表、元组、字典,序列
第9章 数据结构 数据结构,即可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python 有三种内建的数据结构--列表.元组和字典. list = ['item1', 'item2' ...
- 文件上传 PHP
参考http://www.w3school.com.cn/php/php_file_upload.asp 文件上传实际上是一个文件复制的过程 当我们选中一个文件之后 php默认的tmp文件夹中就有 ...
- ID卡学习笔记
前言: 我也来篇关于当时学习ID卡的笔记.前段时间小区装门禁.一个钮扣型的ID卡就要30块.非常黑心.因为其ID卡的成本也就是1块钱以下.因此我也加入到这方面的研究.用来模拟ID卡的T5557卡成本2 ...