标签: mapkit

ios MapKit MKOverlayView动画即刻发生

我试图使用以下代码在iOS 5中为MapKit重叠视图(特别是MKCircleView)的alpha值设置动画:

-(void) animateCircle:(MKCircle*)circle onMap:(MKMapView*) mapView
{
    MKCircleView * circleView = (MKCircleView*) [mapView viewForOverlay:circle];
    UIViewAnimationOptions options = UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionTransitionNone;
    [UIView animateWithDuration:5.0 
                          delay:0.0 
                        options:options 
                     animations:^(void) { circleView.alpha = 0.9; }
                     completion:^(BOOL finished) {} 
     ];    
}
Run Code Online (Sandbox Code Playgroud)

叠加层的alpha值正在按我的意愿改变,但它会瞬间跳到那里,而不是在指定的持续时间内动画.

任何人都可以建议可能出错的地方?也许叠加视图上的动画与块比我想象的更复杂.

animation overlay mapkit ios

6
推荐指数
1
解决办法
1075
查看次数

ios6 mapkit错误模拟器

更新到ios6并在ios6模拟器中运行我的应用程序后,我收到以下错误:

   2012-09-24 16:58:47.988 Pigeons[628:c07] <GEOTileSource: 0x99aa380>: 
Error downloading     tiles Server Error: Error Domain=GEOErrorDomain Code=-204 "The operation couldn’t be completed. (GEOErrorDomain error -204.)" UserInfo=0x19989ff0 {UnderlyingErrors=(
    "Error Domain=GEOErrorDomain Code=-204 \"The operation couldn\U2019t be completed. (GEOErrorDomain error -204.)\""
)}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会出现这个错误.在设备或较旧的模拟器上不会发生错误.

问候,哈科

xcode objective-c mapkit ios

6
推荐指数
1
解决办法
2323
查看次数

应用程序在iOS6上使用MapKit崩溃

我的专用于iPad的应用程序中的谷歌地图有一个奇怪的问题(使用iOS6).我做了一个水平滚动视图,里面有两个视图.一个是详细信息视图(一些文本,没什么特别的),第二个视图是一个带谷歌地图的视图控制器.这是我的应用程序中的通用方案(从两个视图构建scrollview),用于几个不同的目的.当我开始在iOS6的真实iPad上测试应用程序时会出现问题.应用程序应该查看滚动视图时崩溃.但不是立即的.开始时,可​​以正确查看滚动视图.然后我想用新数据构建一个新的滚动视图.它也很好,滚动视图可以正常查看.经过几次这样的操作后,我开始收到越来越多的错误日志,如下所示:

failed to make complete framebuffer object 8cdd

在几次scrollView运行之后,应用程序崩溃而没有任何其他错误.代码编辑器指向main.m文件,以及以下行:

int retVal = UIApplicationMain(argc, argv, nil, nil);

请指导我找出我做错了什么.我的视图控制器中负责查看谷歌地图的viewDidLoad方法在哪里:

-(void)viewDidLoad {
mapView.mapType = MKMapTypeSatellite;
mapView.showsUserLocation = YES; 

/* ANNOTATION (pin) */

CLLocationCoordinate2D annotationCoord;

annotationCoord.latitude = [self.restaurant.latitude doubleValue];
annotationCoord.longitude = [self.restaurant.longitude doubleValue];

// a pin with the info. 

MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];

annotationPoint.coordinate = annotationCoord;
annotationPoint.title = self.restaurant.name;

// add annotation to the map

    [mapView performSelectorOnMainThread:@selector(addAnnotation:)
                                  withObject:annotationPoint
                                  waitUntilDone:YES];


[annotationPoint release];  

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance (annotationCoord, 500, 500); 
[self.mapView setRegion:region animated:YES];

[super …
Run Code Online (Sandbox Code Playgroud)

crash scrollview mapkit ios6 ios6-maps

6
推荐指数
1
解决办法
405
查看次数

将MKMapView的一部分渲染为图像

我有兴趣捕捉地图的一部分,以创建您在弹出窗口顶部看到的图像.我想我会捕获一个UIImage,你可以从引脚的坐标开始这样做吗?

谢谢

Apple地图popover

mapkit mkmapview uipopovercontroller ios

6
推荐指数
2
解决办法
1619
查看次数

如何确定MKMapCamera专注于MKPolygon的正确高度

我需要弄清楚如何设置MKMapSnapshotterOptions来拍摄与地球多边形区域相关的空中/卫星图像的快照.

填写'region','scale','size'和'mapType'属性是微不足道的,因为我有一个MKPolygon可以使用.棘手的部分是设置'相机' - 在我的特定情况下,我使用MKMapSnapshotter独立于MKMapView(实际上,甚至不在主线程上).

但是,我更倾向于定位快照,使其符合基于非零标题的多边形边界 - 也就是说,我正在拍摄的区域具有'开始'和'结束',我想从结果图像的底部到顶部定向.由于多边形基本上永远不会在0度标题上自然定向,因此我需要确定'centerCoordinate','heading'和'altitude'.

由于我有多边形的坐标,我能够相当容易地导出中心坐标和所需的标题 - 多边形的第一个坐标与形状的"开始"和结束(或者我的情况下的其他坐标)相关联到最后'.

确定海拔高度证明更加困难; 我想确保多边形区域最终填满我想要显示的快照图像的宽高比.如何在不依赖MKMapView的'setRegion'选择器的情况下计算与MKMapCamera一起使用的正确高度?

mapkit ios mkmaprect cllocationcoordinate2d mkmapsnapshotter

6
推荐指数
1
解决办法
2572
查看次数

如何在ios7中以编程方式将地图颜色从白天变为夜晚

我正在开发适用于iOS 7的应用程序,我正在尝试将地图从白天变为夜晚,夜晚变为白天模式.我没有在iOS 7文档中找到任何相关的API来执行此操作.

iphone cocoa-touch objective-c mapkit ios7

6
推荐指数
1
解决办法
2204
查看次数

MKOverlayRenderer比MKOverlayView差吗?

我正在开发一个基于地图的应用程序,我正在使用MBXMapKit框架(构建在MapKit上),以便在我的MapView中显示自定义Mapbox地图图块而不是默认的Apple图.然而,虽然Apple的地图是矢量,但Mapbox仍然是光栅图像切片,因此它们被MBXMapKit框架显示为叠加.

这一切都很好,直到我用地图在地图上绘制折线MKOverlay.根据我的理解,在iOS 7之前,你会提供一个MKOverlayViewMapView委托,它将被渲染到地图上,但是现在在iOS 7中,已经被弃用了MKOverlayRenderer,如果我理解正确,它的功能更像是一个drawRect各种各样,我直接绘制到一个上下文,结果显示在地图上(我意识到这不是它的工作原理,但重点是我不再能够访问一个普通的旧版本UIView,这就是我的问题出现的地方).

第一个问题是,当我的叠加层被绘制到地图时,它会逐层绘制.这很好,除了叠加图块似乎与底层的Mapbox图像图块合成.这样可以看到一个简单的折线,有3或4个点需要一个坚实的半秒来渲染(在A7 iPad Air上),你可以看到它在'chunks'中出现,因为每个瓷砖都被重新绘制.它也出于某种原因导致所有未受影响的Mapbox磁贴重新加载(它们都闪烁一瞬间).从UX的角度来看,这看起来像个笑话,完全不可接受.

第二个问题是,因为我不再能够访问UIViewiOS 6中的内容,我不知道如何为叠加设置动画 - 我想要的是淡化折线而不是立即显示它(虽然在这一点上,我会立即显示整个事物,然后看着它逐渐渲染,就像是从点阵式打印机中吐出一样,但你得到了我的观点).

所以我的主要问题是,我是否遗漏了某些东西,或者MKOverlayRendererFAR是否比FAR更不灵活和有用MKOverlayView?从逻辑上讲,您可以将地图上的图层视为可以操纵的单个对象,将事件绑定到它等等,而不是将某些光栅像素数据刻录到地图中,并且永远不能再修改或者与之交互(没有重新绘制整个内容),这样的线程似乎表明Apple已经基本上删除了使用您以前能够轻松完成的叠加来执行大量操作的功能.

由于MKOverlayView现在已弃用,因此不再调用相应的委托方法,这些问题是否有解决方案?由于性能问题和缺乏动画能力,我现在无法将其用于生产应用程序.

编辑:我在绘制时注意到的另一个性能问题MKOverlay是它会影响在绘图发生时发生的其他动画 - 当我点击地图注释时,工具提示会在折线渲染开始的同时弹出动画,确保足够,渲染会导致工具提示动画丢帧.

uikit mapkit ios

6
推荐指数
1
解决办法
2246
查看次数

没有加载缩放的MKMapView图块

我有一个问题.我正在使用a MKMapView来显示一些注释.我使用默认缩放初始化地图视图.它会显示一些地图.

在此输入图像描述

但是当我尝试缩放时,瓷砖没有加载,并且地图变空.像这样.

在此输入图像描述

我通过界面构建​​器创建了Map View.

@property (nonatomic, weak) IBOutlet MKMapView* mapView;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?是否存在任何强制实施方法,这些方法会对此功能产生影响?是的,我的设备上有互联网连接.

iphone objective-c mapkit mkmapview ios

6
推荐指数
1
解决办法
1783
查看次数

将PinTintColor调整为适用于mapkit的Ray Wenderlich教程

我正在使用教程来构建我的第一个应用程序.http://www.raywenderlich.com/90971/introduction-mapkit-swift-tutorial

我搜索了pintintcolor但没有出现.

基本上,本教程使用此代码来设置颜色

// pinColor for disciplines: Sculpture, Plaque, Mural, Monument, other
func pinColor() -> MKPinAnnotationColor{
    switch discipline {
    case "Sculpture", "Plaque":
        return .Red
    case "Mural", "Monument":
        return .Purple
    default:
        return .Green
Run Code Online (Sandbox Code Playgroud)

麻烦就是这就是苹果在开发者网站上的含义

https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_11/Swift/MapKit.html

修改了MKPinAnnotationView声明

从:

class MKPinAnnotationView : MKAnnotationView {
    var pinColor: MKPinAnnotationColor
    var animatesDrop: Bool
}
Run Code Online (Sandbox Code Playgroud)

至:

class MKPinAnnotationView : MKAnnotationView {
    class func redPinColor() -> NSColor
    class func greenPinColor() -> NSColor
    class func purplePinColor() -> NSColor
    var pinTintColor: NSColor!
    var animatesDrop: Bool
    var pinColor: MKPinAnnotationColor
} …
Run Code Online (Sandbox Code Playgroud)

xcode mapkit ios swift

6
推荐指数
2
解决办法
3949
查看次数

地图按钮刷新位置

我正在开发我的第一个iPad快速应用程序.到目前为止,我有一个基本的mapview,底部工具栏中有一个按钮,我想刷新一次,并在点击后聚焦到用户位置.

目前我有这个代码:

import UIKit
import MapKit
import CoreLocation

class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {

var location: CLLocation!
let locationManager = CLLocationManager()

@IBOutlet weak var mapView: MKMapView!
@IBOutlet weak var refresh: UIBarButtonItem!

@IBAction func refresh(sender: AnyObject) {

    let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)

    let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))

    self.mapView.setRegion(region, animated: true)
}

override func viewDidLoad() {
    super.viewDidLoad()

    self.locationManager.delegate = self

    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest

    self.locationManager.requestWhenInUseAuthorization()

    self.locationManager.startUpdatingLocation()

    self.mapView.showsUserLocation = true

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // …
Run Code Online (Sandbox Code Playgroud)

dictionary mapkit swift

6
推荐指数
1
解决办法
6747
查看次数