标签: mapkit

MKMapKit和IOS4

嘿所有,我正在尝试让MKMapView启动并运行,但我似乎无法通过似乎是一个参考错误.我花了几个小时在谷歌上搜索这个以及昨晚.

标题:

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@interface MapsViewController : UIViewController {
    MKMapView *mapView;
}

@end
Run Code Online (Sandbox Code Playgroud)

主要:

#import "MapsViewController.h"

@implementation MapsViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    mapView = [[MKMapView alloc] initWithFrame:self.view.frame];
    [self.view insertSubview:mapView atIndex:0];
}

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}
- …
Run Code Online (Sandbox Code Playgroud)

iphone geo mapkit ios4

5
推荐指数
1
解决办法
2874
查看次数

iPhone MapKit:注释的可访问性

有人知道如何将可访问性标签添加到地图注释中吗?我已经尝试将它添加到MKAnnotationView和MKAnnotation但是都不起作用.选择注释时,VoiceOver始终只读取"pin",而原始地图应用程序在选择注释时会显示正确的标题.

谢谢和最好的问候,

克里斯

annotations accessibility mapkit ios voiceover

5
推荐指数
1
解决办法
1276
查看次数

MKMapView框架在MKMapType声明中没有浮雕谷歌地图类型,但它的工作原理

我试图使用MKMapView,我想显示/更改谷歌提供的地图类型.我们都知道,在网站上我们可以使用普通道路类型,混合类型,卫星/照片类型,最近也可以使用浮雕类型.

这是我想要使用的最后一个.将它插入UIWebView + HTML +标准google API中没有问题,但由于种种原因,我现在更喜欢将它与MKMapView一起使用.但是......惊喜:

"似乎"我们不能使用tat类型的地图......

阅读Apple MKMapView类参考:

MKMapType

要显示的地图类型.

enum {
   MKMapTypeStandard,
   MKMapTypeSatellite,
   MKMapTypeHybrid
};
Run Code Online (Sandbox Code Playgroud)

其中0表示MKMapTypeStandard

1是MKMapTypeSatellite

当然2是MKMapTypeHybrid ......

所以我们正式被允许使用那种3种地图,而不是浮雕类型,它似乎在苹果框架中根本不存在......

但我很好奇,所以我尝试了这个:

myMKMapView.mapType = 3; // a number not officially declared
Run Code Online (Sandbox Code Playgroud)

并且它工作得很好,苹果framweork要求谷歌正确的地图类型然后它在我的视图中显示它,在模拟器和iPhone设备.

所以,这是我的问题:

即使苹果文件中没有"正式"声明,你认为我还能使用它吗?Apple会拒绝我的应用程序以这种方式使用它的框架吗?

提前致谢,

卢卡

iphone google-maps objective-c mapkit

5
推荐指数
1
解决办法
635
查看次数

如何在两个MKCoordinateRegion之间建立联合

我正在尝试两个MKCoordinateRegion之间的联合.有没有人知道如何做到这一点?

cocoa-touch objective-c mapkit mkcoordinateregion mkmapview

5
推荐指数
1
解决办法
3877
查看次数

MkMapView点击+注释选择问题

我有一个MkMapView,我有一些注释.单击注释时,其详细信息在另一个视图中打开,该视图在地图视图的下半部分具有滚动视图.当我们滚动滚动视图时,地图以下一个注释为中心,其详细信息显示在scrollview中.

我的问题是我想在地图上添加一个点击手势,这样当我点击地图时,滚动视图应该隐藏.为此,我在地图上添加了一个UiTapGesture也可以正常工作,但问题是地图上的注释不再保持可用.地图总是进行tapgesture的动作,它再也不会再调用selectannotation方法了?

我该如何解决这个问题????

iphone annotations mapkit mkmapview ios

5
推荐指数
1
解决办法
2202
查看次数

MKMapView setRegion:在世界边缘崩溃

我正在使用此代码来设置一个区域MKMapView,使其居中pin并缩放以显示大约10km的区域.

CLLocationAccuracy accuracy = kCLLocationAccuracyKilometer;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(pin.coordinate, accuracy * 10.0f, accuracy * 10.0f);
[self.mapSubView setRegion:region animated:NO];
Run Code Online (Sandbox Code Playgroud)

运行纬度-90,经度-58.359001159667969的引脚坐标的代码时,region生成如下所示:

mapSubView绘制时发生崩溃: -

因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'无效区域<center:-90.00000000,-58.35900116 span:+0.08953039,+ 1462142065660629.00000000>'

我第一次尝试解决此问题是检查"边缘"纬度/长度(-90,+ 90,-180,+ 180),这解决了这个问题.但是,如果纬度更改为-89.99999,则问题将返回.

我猜这是由于纬度存在的组合-90和/或区域跨度的经度三角洲是如此之大,导致在实际上是"这个世界的"一区:P

任何关于如何在任何坐标处围绕销钉居中的建议,显示~10km的区域,没有这种碰撞将是非常感谢.

objective-c core-location mapkit mkmapview

5
推荐指数
2
解决办法
1272
查看次数

无法在Swift中符合MKAnnotation协议

当我尝试符合MKAnnotation协议时,它会抛出错误,我的类不符合协议MKAnnotation.我使用以下代码

import MapKit
import Foundation

class MyAnnotation: NSObject, MKAnnotation
{

}
Run Code Online (Sandbox Code Playgroud)

Objective-C也可以做同样的事情.

mapkit mkannotation ios swift

5
推荐指数
1
解决办法
5866
查看次数

如何拖动MKMapView拖动注释?(IOS)

我有一个包含MKMapView的UIViewController.我通过以下代码在当前位置添加了注释:

import UIKit
import MapKit
class LocationViewController: UIViewController , MKMapViewDelegate ,CLLocationManagerDelegate {
    @IBOutlet weak var mapView: MKMapView!
    var locationManager: CLLocationManager!
    let regionRadius: CLLocationDistance = 1000
    var token: dispatch_once_t = 0
    override func viewDidLoad() {
        super.viewDidLoad()
        mapView.delegate = self
        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
    }

func centerMapOnLocation(location: CLLocation) {
    let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
        regionRadius * 2.0, regionRadius * 2.0)
    mapView.setRegion(coordinateRegion, animated: true)
}

func mapView(mapView: MKMapView, didUpdateUserLocation userLocation: MKUserLocation) {

    if ((userLocation.coordinate.latitude != 0.0) && …
Run Code Online (Sandbox Code Playgroud)

mapkit mkmapview ios swift

5
推荐指数
1
解决办法
6588
查看次数

从MapKit(Swift 2)获取中心坐标并在UILabel中显示

我正在使用XCode 7.2和Swift 2.1开发iOS应用程序,并且我已经在我的应用程序中成功实现了MapKit地图.地图加载完美,并以用户当前位置为中心.

现在,如果用户将地图中心移动到新位置,我想检索中心坐标.按下按钮可以"捕获"这个新位置的坐标(参见附加的gif中的"设置网格参考"按钮)并显示在标签中.

从A移动到B并设置新的中心坐标

我来回答最接近的是在这里,和我实现了代码,但我仍然无法弄清楚如何通过点击我创建了IBOutlet中按钮来更新坐标标签.

我在这里想念的是什么?!

任何帮助将非常感谢 - 提前感谢!

----------------关注问题------------------

现在我们已经解决了问题并且我们得到了新的中心坐标标签,我还有一个问题 - 最有可能是一个菜鸟疏忽,但我在这里有一个陡峭的学习曲线,所以请耐心等待.. .

我们已经成功确定了中心坐标,现在它们在我们创建的函数中设置为mapLongitudemapLatitude.

我有两个其他变量(newTargetLongnewTargetLat),它们构成了一个值数组的一部分,将传递给下一个视图控制器,我想:

let newTargetLong = mapLongitude
let newTargetLat = mapLatitude
Run Code Online (Sandbox Code Playgroud)

这样就可以用.append指令将新的纬度和经度添加到数组中.

但由于某种原因,我只是无法将这两个值"超出"该功能.我需要做些什么才能实现这一目标?

mapkit ios swift

5
推荐指数
2
解决办法
5886
查看次数

有没有办法允许只将MKMapView缩放到特定区域,同时禁用任何其他用户交互?

我有一个swift带有MapView 的应用程序.这些是我在地图故事板上的设置:

在此输入图像描述

另外,在我正在做的代码中:

let regionRadius: CLLocationDistance = 10000
let initialLocation = CLLocation(latitude: latitude, longitude: longitude)
centerMapOnLocation(initialLocation, map: cell.mapView, radius: regionRadius)
cell.mapView.scrollEnabled = false
cell.mapView.rotateEnabled = false
Run Code Online (Sandbox Code Playgroud)

我的方法centerMapOnLocation最初将地图集中在特定位置:

func centerMapOnLocation(location: CLLocation, map: MKMapView, radius: CLLocationDistance) {
    let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
                                                              radius * 2.0, radius * 2.0)
    map.setRegion(coordinateRegion, animated: true)
}
Run Code Online (Sandbox Code Playgroud)

我想只允许用户放大/缩小到精确的gps坐标.

目前用户无法滚动地图,但他可以旋转它,也可以 - 他可以在地图上的任何地方双击,它将在那里放大.

我想禁用这些选项并产生效果,当用户双击地图(或捏合)时 - 它只会缩放到初始位置.

我怎么能这样做,而且 - 为什么不起作用rotateEnabled = false

mapkit mkmapview ios mkmapviewdelegate swift

5
推荐指数
1
解决办法
813
查看次数