MBMapKitGoogleStyler
简介
注意:这是由 fmo91 编写的 MapKitGoogleStyler 的 Objective-C 版本。如果您无法使用 Swift 或不愿意在项目中使用 Swift,请使用它;否则,您可以使用 原始版本。
MBMapKitGoogleStyler 允许您包含 Google Maps JSON 样式,您可以在 此处 创建它们,并自定义 MKMapView 以便看起来就像您想要的那样(或您的客户)。包含此库非常非常简单。
在此处可以找到一个详细介绍概念和 Swift 版本使用的文章: https://medium.com/@ortizfernandomartin/customize-mapkits-mkmapview-with-google-maps-styling-wizard-a5dcc095e19f#.ss3dencgh
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
要轻松地在一个 MKMapView 上获得样式
-
在这里创建您的样式,并生成一个 JSON 文件。
-
将 JSON 放在您的项目中一个纯文本文件中。您可以为它命名任何您想要的,在这个示例中我将它命名为 'MapStyle.json'。
-
将 MBMapKitGoogleStyler 导入到您的视图控制器
#import <MBMapKitGoogleStyler/MBMapKitGoogleStyler.h>
-
确保您的视图控制器是 MKMapViewDelegate,并实现 -mapViewrendererForOverlay
接口声明
@interface MBViewController () <MKMapViewDelegate>
在 MKMapView 上设置委托(在 -viewDidLoad 中)
[_mapView setDelegate:self];
实现代理方法
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
MKTileOverlay * tileOverlay = (MKTileOverlay*)overlay;
if (tileOverlay) {
return [[MKTileOverlayRenderer alloc] initWithTileOverlay:tileOverlay];
} else {
return [[MKOverlayRenderer alloc] initWithOverlay:overlay];
}
}
- 编写一个函数来将瓦片覆盖添加到您的地图视图中(确保您导入了名为您命名的 JSON 文件)
- (void)configureTileOverlay {
// import the JSON file
NSString * overlayFileURLString = [[NSBundle mainBundle] pathForResource:@"MapStyle" ofType:@"json"];
NSURL * overlayFileURL = [NSURL fileURLWithPath:overlayFileURLString];
MKTileOverlay * tileOverlay = [MBMapKitGoogleStyler buildOverlayWithJSONFileURL:overlayFileURL];
[_mapView addOverlay:tileOverlay];
}
在设置委托后调用它(-viewDidLoad)
[_mapView setDelegate:self];
[self configureTileOverlay];
需求
- MapKit
安装
MBMapKitGoogleStyler 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile
pod 'MBMapKitGoogleStyler'
作者
jmbiggs, [email protected] fmo91, [email protected] (原始 Swift 版本)
许可
MBMapKitGoogleStyler 在 MIT 许可下提供。有关更多信息,请参阅许可证文件。