MBMapSnapshotter 1.0

MBMapSnapshotter 1.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

未指派 维护。



  • Philip Brechler

使用 MBMapSnapshotter 从 MapBox.com 静态图片服务获取图像,应用您的自定义样式。下载图像后,该类将调用一个带有 MBSnapshot 对象的块,您可以从该对象中检索 UIImage 本身,并为给定的 CLLocationCoordinate2d 获取图像中的 CGPoint(用于在图像上绘制自定义标记或路线)。

安装

将此仓库作为您的 git 仓库的子模块或 simply fork 它。您还需要 AFNetworking。我目前正在工作于 CocoaPods 的 Podspec。

使用说明

#import <CLLocation/CLLocation.h>
#import "AFNetworking.h"
#import "MBMapSnapshotter.h"

- (void)takeSnapshot {
  CLLocationCoordinate2D coordnate = CLLocationCoordnate2DMake(52.516667, 13.383333); //Berlin
  MBMapSnapshotter *mapSnapShotter = [[MBMapSnapshotter alloc]init];
  [mapSnapShotter setMapName:@"examples.map-9ijuk24y"];
  [mapSnapShotter getSnapshotWithCenter:coordinate size:CGSizeMake(480, 320) zoomLevel:14 finishingBlock:^(MBSnapshot *snapshot, NSError *error) {
    if (error){
      NSLog(@"Error %@", error);
    } else {
      [_imageView setImage snapshot.image];
    }
  }];
}

您也可以使用

- (CGPoint)pointForCoordinate:(CLLocationCoordinate2D)coordinate
来获取给定坐标的点。

问题

  • 图像只有 1x,如果您需要 Retina 图像,您将需要请求 2x 的大小。
  • 最小尺寸为 4x4 像素,最大尺寸为 640x640(由 MapBox.com 限制)。
  • MBSnapshot 的图像属性目前不是只读的,因此您应该注意,只有在初始地图图像的坐标才是正确的。