地图基础知识

部署运行你感兴趣的模型镜像

新建工程

采用MapSDK开发iOS平台(iPhone/iPod Touch/iPad)下的地图应用程序,需要在XCode下建立相应的项目工程,本文档以建立iPhone上的项目工程作为示例。

新建 iphone 设备工程

1. 如图所示,新建iOS设备工程,选择Navigation-base Application类型,点击Choose,进行下一步。

2. 然后选择工程代码的存放路径如图所示,点击Save。

3. 至此就建立了一个iPhone平台下的项目工程目录,结果如图所示。

引用地图开发库

开发iOS设备上的地图功能需要引用的开发库主要包括文件libiMapSDKLib,iMapSDK目录下的头文件以及sa_types.h和ut_types.h还有htl的所有头文件等,添加引用方式如下。

1. 把libiMapSDKLib.a放在工程目录下,如图所示。


2. 把头文件放到文件夹include中,复制到工程目录下,如图所示。


3. 复制文件后,在XCode的工程目录中包含头文件到工程中,如图所示。


4. 然后在”Project->Edit Active Target ->Build->Linking”选项卡中设置代码编译时要连接的静态库的名称即libiMapSDKLib.a,如图所示。


5. 在Project->Edit Active Target ->Build->Search Path选项中设置头文件的include路径(Header Search Path)和静态库的连接路径(LibrarySearch Path),如图8所示。


6. 开发环境搭建完毕后,编译成功,点击”Run”,模拟器上可以运行一个空白的待开发iphone程序,如图所示。



地图显示

1. 在Demo工程的RootViewController中修改viewDidLoad方法,如图所示。


2. 编译代码后,在模拟器上运行程序,地图可以显示,如图所示。


地图移动、缩放

地图移动

MTMapView类里已经针对地图的移动做了处理,所以在iOS上采用MapSDK开发地图应用不需要针对地图的拖动和缩放再做处理。如图所示,用鼠标在模拟器上拖动地图,地图随着鼠标的移动而移动。

地图放大缩小

在模拟上用鼠标双击地图上的某点则地图放大,也可以在地图上同时按下option键+鼠标左键来控制地图的放大、缩小如图所示。


地图标注添加、删除

添加地图标注

1. 添加地图标注功能代码如下,如图所示。
2. 添加后,需要把标注图标放到运行目录下的res文件夹中,命名为pinRed.png,如图所示。
3. 运行显示效果如图所示。

删除地图标注

删除地图标注功能代码如下。

源码复制打印关于

  1.  if(annotation)   
  2. {   
  3. [mapremoveAnnotation:annotation];   
  4. }   

参数为要删除的标注的View指针。


地图辅助功能

绘制直线

绘制直线功能代码如图所示。

运行结果如下图所示:

绘制多边形

绘制多边形功能代码如图所示。 

运行结果如图所示。

绘制圆

绘制圆功能代码如图所示。 

运行结果如图所示。

清除地物覆盖物

清除全部地图覆盖物功能代码如下。

  1. [mapremoveOverlay:circleView];  
  2. [mapremoveOverlay:polygonView];  
  3. [map:removeOverlay:polylineView];  
  4.    

根据以上函数样式,传入参数为要删除的覆盖物的指针。运行工程,如上图所示对应的覆盖物。


地图查询

在iOS平台上利用MapSDK提供的查询接口实现查询功能,首先,接收查询结果的类需要继承MSearchDelegate协议,另外如果要想实现坐标反偏移的查询,还要实现GPSToOffsetByPoint_Delegate协议。示例代码如下:

源码复制打印关于

  1. @interface SearchViewController:UITableViewController<msearchdelegate, gpstooffsetbypoint_delegate="">{   
  2. }   
  3. @end  

由坐标点查询空间位置描述

该查询功能根据空间坐标点,查询该点的位置描述,包括该点所在省市区,周边的POI和道路等信息。示例代码如下。

  1. MSearch* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2.  MLONLAT poi;   
  3.  poi.X = XXXX.XXXX;   
  4.  poi.Y = YYYY.YYYY;   
  5.  MREGEOCODESEARCHOPTIONS options;   
  6.  [searchPoiToAddressByPoi:poiOptions:options];   
  7.    

然后在继承了MSearchDelegate的类里通过实现PoiToAddressResponse方法来接收和处理查询结果。


坐标点周边关键字查询

该查询功能根据中心点坐标,进行该中心点的周边关键字查询,示例代码如下。

  1. MSearch* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2. MLONLAT poi;   
  3. poi.X = XXXX.XXXX;   
  4. poi.Y = YYYY.YYYY;   
  5. MPOISEARCHOPTIONS options;   
  6. [search PoiSearchByCenPoi:poi Keywords:@”XXXX” City:”北京”Options:options];   

然后在继承了MSearchDelegate的类里通过实现PoiSearchResponse方法来接收和处理查询结果。


关键字周边的关键字查询

该功能实现在关键字周边进行关键字搜索查询,示例代码如下。

  1. Search* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2. MPOISEARCHOPTIONS options;   
  3. [search PoiSearchByCenKeywors:@”XXXX”SearchKeywords:@”XXXX” City:”北京”Options:options];   

然后在继承了MSearchDelegate的类里通过实现PoiSearchResponse方法来接收和处理查询结果。


两点间驾车导航路径查询

该功能实现在两个点之间查询驾车导航路径,代码如下。

  1. MSearch* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2. MLONLAT startPoi;   
  3. startPoi.X = XXXX.XXXX;   
  4. startPoi.Y = YYYY.YYYY;   
  5. MLONLAT endPoi;   
  6. endPoi.X = XXXX.XXXX;   
  7. endPoi,Y = YYYY.YYYY;   
  8. MAUTOSEARCHOPTIONS options;   
  9. [searchRouteSearchByStartPoi:startPoiEndPoi:endPoiOptions:options];   

然后在继承了MSearchDelegate的类里通过实现RouteSearchResponse方法来接收和处理查询结果。

导航距离计算

该功能实现导航路径的距离查询,输入参数为X,Y坐标的集合,代码如下。

  1. MSearch* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2. MAUTODISSEARCHOPTIONS options;   
  3. [searchCalculaNaviDistanceByXPoint:@”XXXX” YPoint:@”YYYY”Options:options];   

然后在继承了MSearchDelegate的类里通过实现CalculaNaviDistanceResponse方法来接收和处理查询结果。


两点间的公交导航查询

该功能查询两点之间的公交导航,代码如下。

  1. MSearch* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2. MLONLAT startPoi;   
  3. startPoi.X = XXXX.XXXX;   
  4. startPoi.Y = YYYY.YYYY;   
  5. MLONLAT endPoi;   
  6. endPoi.X = XXXX.XXXX;   
  7. endPoi,Y = YYYY.YYYY;   
  8. MBUSNAVISEARCHOPTIONS options;   
  9. [searchBusSearchByStartPoi:startPoiEndPoi:endPoi City:@”北京”Options:options];   

然后在继承了MSearchDelegate的类里通过实现BusNaviSearchResponse方法来接收和处理查询结果。


公交ID查询公交信息

该功能实现通过公交ID查询公交信息,代码如下。

  1.  MSearch* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2. MBUSINFOSEARCHOPTIONS options;   
  3. [search BusSearchByBusId:@”000000123456” City:”北京”Options:options];   

然后在继承了MSearchDelegate的类里通过实现BusSearchResponse方法来接收和处理查询结果。


公交站点查询公交信息

该功能实现由公交站点名称查询公交信息,代码如下。

  1. MSearch* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2. MBUSINFOSEARCHOPTIONS options;   
  3. [search BusSearchByBusStation:@”西直门” City:”北京”Options:options];   

然后在继承了MSearchDelegate的类里通过实现BusSearchResponse方法来接收和处理查询结果。


公交名称查询公交信息

该功能实现由公交名称查询公交信息,代码如下。

  1. MSearch* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2. MBUSINFOSEARCHOPTIONS options;   
  3. [search BusSearchByBusName:@”917” City:”北京”Options:options];   

然后在继承了MSearchDelegate的类里通过实现BusSearchResponse方法来接收和处理查询结果。

GPS真实坐标转换为偏移坐标

该功能实现GPS真实坐标转换为GPS偏移坐标,因为该查询在后台采用了多线程的执行方式所以查询参数的传递有别于其他查询接口使用方法如下。 (1)首先要使接收查询的类继承GPSToOffsetByPoint_Delegate协议,代码如下。

源码复制打印关于

  1. @interfaceSearchViewController:UITableViewController<msearchdelegate, gpstooffsetbypoint_delegate="">{   
  2. }   
  3. @end   
  4. </msearchdelegate,>  

(2)然后在继承了GPSToOffsetByPoint_Delegate协议的类中要为查询参数实现赋值函数,代码如下。

  1. @implementtationSearchViewController   
  2. @synthesize poiXY;   
  3. @synthesize options;   
  4. @end   

(2)设置查询参数,并开始查询,代码如下。

  1.  MSearch* search = [MSearchMSearchWithKey:@”XXXXXX”delegate:Delegate];   
  2. Delegate.poiXY.X =XXXX.XXX; Delegate.poiXY.Y =YYYY.YYY; MCOORDINATESEARCHOPTIONSsearch_option;   
  3. Delegate.options = search_option;   
  4. [m_pSearchGPSToOffSetByPoint:Delegate];  
  5.     

继承了GPSToOffsetByPoint_Delegate的类里通过实现GPSToOffSetResponse方法来接收和处理查询结果。

您可能感兴趣的与本文相关的镜像

Qwen-Image

Qwen-Image

图片生成
Qwen

Qwen-Image是阿里云通义千问团队于2025年8月发布的亿参数图像生成基础模型,其最大亮点是强大的复杂文本渲染和精确图像编辑能力,能够生成包含多行、段落级中英文文本的高保真图像

【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器状态空间平均模型的建模策略。该方法通过对系统中多个相互耦合的DC-DC变换器进行统一建模,构建出整个微电网的集中状态空间模型,并在此基础上实施线性化处理,便于后续的小信号分析与稳定性研究。文中详细阐述了建模过程中的关键步骤,包括电路拓扑分析、状态变量选取、平均化处理以及雅可比矩阵的推导,最终通过Matlab代码实现模型仿真验证,展示了该方法在动态响应分析和控制器设计中的有效性。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真工具,从事微电网、新能源系统建模与控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网中多变换器系统的统一建模方法;②理解状态空间平均法在非线性电力电子系统中的应用;③实现系统线性化并用于稳定性分析与控制器设计;④通过Matlab代码复现和扩展模型,服务于科研仿真与教学实践。; 阅读建议:建议读者结合Matlab代码逐步理解建模流程,重点关注状态变量的选择与平均化处理的数学推导,同时可尝试修改系统参数或拓扑结构以加深对模型通用性和适应性的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值