1.调用内容为百度地图静态图的API
http://lbsyun.baidu.com/index.php?title=static
2.使用版本为老版本(老版本不需要ak可以直接访问)
3.例子
3-1.(仅标注坐标点)
http://api.map.baidu.com/staticimage?center= 百度大厦&markers=百度大厦|西二旗|西二旗地铁
其中center为地图中心.makers为需要标注的位置,可以有多个,多个地址使用"|"进行连接
3-2.(有路径)
http://api.map.baidu.com/staticimage?center= 巴黎&paths=-0.12768,51.507332.3509871,48.85666676.9599115,50.94066458.6805059,50.1115118
其中paths为想要显示路径的坐标,说是可以使用文字描述,不过测试的时候文字描述没有生效,需要使用经纬度,一个坐标经纬度之间用","分割,不同坐标点使用""进行分割多条路径使用"|"进行分割
3-3.(设置位置名)
http://api.map.baidu.com/staticimage?center= 巴黎&paths=-0.12768,51.507332.3509871,48.85666676.9599115,50.94066458.6805059,50.1115118&labels=-0.12768,51.50733&labelStyles=阿斯达三大苏打,1,12,0xFF0000,0xFFF,1&pathStyles=0xff0000,5,1
通过正则表达式,从页面将图片偷下来,保存到本地即可。给你个例子public class RegexDemo1 {
public static void main(String[] args) throws Exception{
//创建URL
URL url=new URL("http://hunan.haodf.com/")
//打开连接
URLConnection conn=url.openConnection()
//创建输入流
InputStream is=conn.getInputStream()
InputStreamReader isr=new InputStreamReader(is)
BufferedReader br=new BufferedReader(isr)
//读数据
String line=null
String allLine=""
line=br.readLine()
while(line!=null){
allLine+=line
line=br.readLine()
}
//关闭流
br.close()
isr.close()
is.close()
System.out.println(allLine)
Pattern p=Pattern.compile("(?<=<td width=\"30%\">\\s{0,100}?.{0,100}?\\.htm\\\">).+?(?=</a>\\s*?</td>)")
Matcher m=p.matcher(allLine)
int num=0
while(m.find()){
System.out.println(m.group())
num++
}
System.out.println(num)
}
}
这个是我自己写的,你参考下吧
最新百度地图使用注意事项(在使用中出现了引擎失败的家在错误,下边是注意事项)第一步、引入BaiduMapAPI.framework
第二步、引入所需的系统库
在Xcode工程中引入CoreLocation.framework和QuartzCore.framework、
OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、
Security.framework。添加方式:在Xcode的Project ->Active Target ->Build
Phases ->Link Binary With Libraries,添加这几个framework即可。
第三步、环境配置
在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC。
第四步、引入mapapi.bundle资源文件
如果使用了基础地图功能,需要添加该资源,否则地图不能正常显示
mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。如果您不需要使用
内置的图片显示功能,则可以删除bundle文件中的image文件夹。您也可以根据具体需求任意替换或删除该bundle中image文件夹的图片文
件。
方法:选中工程名,在右键菜单中选择Add Files to
“工程名”…,从BaiduMapAPI.framework||Resources文件中选择mapapi.bundle文件,并勾选“Copy
items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。
第五步、引入头文件
在使用SDK的类引入头文件:
#import <baidumapapi bmapkit.h="">//引入所有的头文件
#import <baidumapapi bmkmapview.h="">//只引入所需的单个头文件</baidumapapi></baidumapapi>
上面都是引用百度地图文档上的内容,这里要注意第四条,.framework中居然有这些,但还是需要单独add到项目里。
还需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):
NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述
NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述
在使用时由于没有 *** 作第4步,导致引擎初始化失败,百度的文档写的是真心不方便。写下这篇希望能给将要使用百度地图的朋友提供点帮助。
一、使用百度地图需要注意的事项
1、静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即将Xcode的Project ->Edit Active Target ->Build->GCC4.2 - Language ->Compile Sources As设置为"Objective-C++"
2、如果您只在Xib文件中使用了BMKMapView,没有在代码中使用BMKMapView,编译器在链接时不会链接对应符号,需要在工程属性中显式设定:在Xcode的Project ->Edit Active Target ->Build ->Linking ->Other Linker Flags中添加-ObjC
3、授权Key的申请:新、旧Key之间不可通用,即新Key只可以使用在v2.0.2及后续版本的SDK中,旧的Key只适用于v2.0.1及之前版本的SDK;如果还没有授权Key,请申请密钥
4、管理地图的生命周期:自2.0.0起,BMKMapView新增viewWillAppear、viewWillDisappear方法来控制BMKMapView的生命周期,并且在一个时刻只能有一个BMKMapView接受回调消息,因此在使用BMKMapView的viewController中需要在viewWillAppear、viewWillDisappear方法中调用BMKMapView的对应的方法,并处理delegate,代码如下:
-(void)viewWillAppear:(BOOL)animated{[_mapView viewWillAppear]_mapView.delegate=self// 此处记得不用的时候需要置nil,否则影响内存的释放}-(void)viewWillDisappear:
-(BOOL)animated{[_mapView viewWillDisappear]_mapView.delegate=nil// 不用时,置nil}
5、自iOS SDK v2.5.0起,为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下:需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述
6、在使用Xcode6进行SDK开发过程中,需要在info.plist中添加:Bundle display name ,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager start failed)
7、百度地图iOS SDK v2.5.0起,对arm64进行了支持适配,开发包体积有所增加。但根据开发者在研发过程中的选择,最终生成的APP体积并不会发生较大的变化。
8、确认项目中添加mapapi.bundle文件以及添加方法正确,不能删除或随意更改其中files文件夹下的内容:
注:mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。如果您不需要使用内置的图片显示功能,则可以删除bundle文件中的image文件夹。您也可以根据具体需求任意替换或删除该bundle中image文件夹的图片文件。添加方式:将mapapi.bundle拷贝到您的工程目录,直接将该bundle文件托拽至Xcode工程左侧的Groups&Files中即可。若您需要替换定位、指南针的图标,请保留原文件名称,否则不显示替换的新图片,默认大头针标注与路线关键点的新图片名称可自定义名称。
9、注意BMKManager对象的生命周期管理,在使用地图SDK期间不能释放该对象,尤其在arc情况下注意避免提前被自动释放,否则,该对象一旦被释放,网络模块将不可用,地图无法加载,检索失败。
10、app在前后台切换时,需要使用下面的代码停止地图的渲染和openGL的绘制:
-(void)applicationWillResignActive:(UIApplication*)application{[BMKMapViewwillBackGround]//当应用即将后台时调用,停止一切调用opengl相关的 *** 作}-(void)applicationDidBecomeActive:(UIApplication*)application{[BMKMapViewdidForeGround]//当应用恢复前台状态时调用,回复地图的渲染和opengl相关的 *** 作}
二、使用百度地图需要引进的库
(1)引入头文件
首先将百度MapAPI提供的头文件和静态库(.a)文件拷贝到您的工程目录下,在Xcode中添加新的文件Group,引入百度MapAPI提供的头文件(请使用Xcode 4.X以上平台)。在您需要使用百度MapAPI的文件中添加以下代码 #import"BMapKit.h"
(2)引入静态库文件
百度地图SDK提供了模拟器和真机两中环境所使用的静态库文件,分别存放在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++"
(3)引入系统framework
百度地图SDK中提供了定位功能和动画效果,v2.0.0版本开始使用OpenGL渲染,因此您需要在您的Xcode工程中引入CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework。添加方式:在Xcode的Project ->Active Target ->Build Phases ->LinkBinary With Libraries,添加这几个framework即可。
(4)引入mapapi.bundle资源文件
mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。如果您不需要使用内置的图片显示功能,则可以删除bundle文件中的image文件夹。您也可以根据具体需求任意替换或删除该bundle中image文件夹的图片文件。
添加方式:将mapapi.bundle拷贝到您的工程目录,直接将该bundle文件托拽至Xcode工程左侧的Groups&Files中即
可。若您需要替换定位、指南针的图标,请保留原文件名称,否则不显示替换的新图片,默认大头针标注与路线关键点的新图片名称可自定义名称。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)