IOS 高德地图 API 加载 WMS 服务

本文介绍了如何在iOS应用中利用高德地图API的MATileOverlay接口,实现加载WMS服务。通过自定义WMSTileOverlayUtil类,重写关键函数以处理WMS请求和转换。在实现过程中遇到NSURLConnection网络请求错误,目前通过自定义网络访问层解决。请注意调整AFNetworking的类型设置以支持WMS服务。
摘要由CSDN通过智能技术生成

IOS 高德地图 API 加载 WMS 服务

本文主要介绍通过自定义高德地图 MATileOverlay 接口,添加 WMS 服务到地图上。废话少说,先贴代码。

代码

自定义类 WMSTileOverlayUtil,继承自高德地图接口 MATileOverlay,主要重载函数:
- (NSURL *)URLForTilePath:(MATileOverlayPath)path;
- (void)loadTileAtPath:(MATileOverlayPath)path result:(void (^)(NSData *tileData, NSError *error))result;,见代码注释。

#import <Foundation/Foundation.h>
#import <MAMapKit/MATileOverlay.h>


@interface WMSTileOverlayUtil : MATileOverlay

- (id)initWithRootURL:(NSString *)rootRUL;

/**
 * @brief 以tile path生成URL。用于加载tile,此方法默认填充URLTemplate
 * @param path tile path
 * @return 以tile path生成tileOverlay
 */
- (NSURL *)URLForTilePath:(MATileOverlayPath)path;

@end
#import "WMSTileOverlayUtil.h"
#import <MAMapKit/MAMapKit.h>
#import <AMapFoundationKit/AMapFoundationKit.h>
#import <math.h>

#import "Api.h"

@implementation WMSTileOverlayUtil
{
    NSString *  rootURL;
    NSInteger   titleSize;           // = 256
    double      initialResolution;   // = 156543.03392804062;//2*Math.PI*6378137/titleSize;
    double      originShift;         // = 20037508.342789244;//2*Math.PI*6378137/2.0; 周长的一半
    double      HA
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值