标签: mapkit

在 MapView 上绘制矩形

我的应用程序获取以下覆盖区域中的数据。我想使用这些边界值在地图上绘制矩形。你有什么主意吗?提前致谢

左上边界:30.439217,-95.899668;

右上边界:30.443953,-94.685679;

左按钮边界:28.930662,-95.908595;

右臀边界:28.930061,-94.690486;

mapkit ios

2
推荐指数
1
解决办法
3159
查看次数

如何查找坐标所在的海洋

我有一些坐标,它总是在海洋中的某个地方.我需要一种方法将坐标转换为一个字符串,告诉坐标落在哪个海洋/海洋.有没有方便的方法呢?

谢谢

cocoa-touch google-maps mapkit ios

2
推荐指数
1
解决办法
211
查看次数

对许多地址进行地理编码 - CLGeocoder

我需要使用CLGeocoder 而不是 Google API 对大量地址进行地理编码.

我的问题是我的代码只为下面数组中的第一个地址添加了注释.但是,函数被调用适当的次数 - 在为所有地址调用函数之后,块只运行第一个地址:

- (void)mapPoints {
    NSString *foo = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"names%d", self.indexOfSchool] ofType:@"plist"];
    NSArray *description = [NSArray arrayWithContentsOfFile:foo];
    NSString *bar = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d1", self.indexOfSchool] ofType:@"plist"];
    NSArray *details = [NSArray arrayWithContentsOfFile:bar];

    NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d0", self.indexOfSchool] ofType:@"plist"];
    NSArray *addresses = [NSArray arrayWithContentsOfFile:path];
    self.saved = [NSMutableArray alloc] init];
    for (int q = 0; q < addresses.count; q+= 20) {
        [self annotate:[addresses objectAtIndex:q] detail:[details objectAtIndex:q] andDesc:[description objectAtIndex:q]];
    }
}

see updated …
Run Code Online (Sandbox Code Playgroud)

objective-c core-location mapkit cllocationmanager

2
推荐指数
1
解决办法
1014
查看次数

检测地图圆圈叠加中的点击总是返回 false

我有一个带有圆形叠加层的地图,它总是从 CGPathContainsPoint 方法返回 false。我是否传入了错误的 tapPoint 值?

func didTapMap(gestureRecognizer: UIGestureRecognizer) {
    let tapPoint: CGPoint = gestureRecognizer.locationInView(map)
    NSLog("%@,%@",tapPoint.x, tapPoint.y)

    for overlay in self.map.overlays{
        if (overlay.isKindOfClass(MKCircle))
        {
            let circle = overlay as MKCircle
            let circleRenderer:MKCircleRenderer = map.rendererForOverlay(circle) as MKCircleRenderer
            circleRenderer.invalidatePath()
            let mapCoordinateIsInCircle = CGPathContainsPoint(circleRenderer.path, nil, tapPoint, false)

            if (mapCoordinateIsInCircle == true)
            {
                NSLog("tapped in circle");
                break
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

mapkit ios swift

2
推荐指数
1
解决办法
630
查看次数

无法让MapKit工作

我按照关于如何使用MapKit的教程进行操作,但是我无法完成本教程的前几个步骤.我检查了其他教程,他们都有完全相同的初始步骤.

  1. 我将Map Kit视图放到我的视图控制器上.
  2. 我添加:导入MapKit.
  3. 我将MapKit框架添加到我的项目中.
  4. 我为视图控制器添加了一个插座.

但是我得到一个警告,ViewController是模块Mapkit的一部分而忽略了MapKit

然后我得到一个错误:使用未声明的类型MKMapView - 这很可能是由于MapKit没有被导入造成的.

这是错误和代码的屏幕截图:

在此输入图像描述

我相信我正确地遵循了教程步骤.

任何想法,我做错了什么?

mapkit ios swift

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

Mapbox 中的 MKUserTrackingBarButtonItem

我正在评估从 MapKit 切换到 Mapbox。

我已经找到了所有函数的等效项,除了MKUserTrackingBarButtonItem.

let trackingButton = MKUserTrackingBarButtonItem(mapView: map)
Run Code Online (Sandbox Code Playgroud)

有没有办法为 Mapbox iOS SDK 创建这个按钮?

我在 Mapbox 文档中没有找到类似的东西,我不能继续使用这个函数,因为它需要一个MKMapView.

提前致谢。

mapkit ios mapbox swift swift2

2
推荐指数
1
解决办法
774
查看次数

拖动时更新 MKPointAnnotation 对象

我想知道如何annotation在拖动标题时更新我的标题,因为所有annotation属性都是get唯一的。

我尝试过的代码:

func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, didChange newState: MKAnnotationViewDragState, fromOldState oldState: MKAnnotationViewDragState) {

    switch (newState) {
    case .starting:
        //view.dragState = .dragging
        print("dragging.....")
    case .ending, .canceling:
        // view.dragState = .none
        let lat = view.annotation?.coordinate.latitude
        let long = view.annotation?.coordinate.longitude
        let coordinates = CLLocationCoordinate2D(latitude: lat!, longitude: long!)
        print(" pin lat \(lat) long \(long)")

        //Error here - title is get only property
        view.annotation?.title = "New Location"

    default: break
    }

}
Run Code Online (Sandbox Code Playgroud)

mapkit ios mapkitannotation swift2 swift3

2
推荐指数
1
解决办法
625
查看次数

如何显示 MapKit 指南针?

目前指南针只有在用户应用旋转手势时才会显示。否则指南针是隐藏的。

图像1


不过要是能实现我下面的两个愿望就好了!

  • 是否可以始终显示指南针?
  • 如何使用 Swift 显示/隐藏罗盘视图?

mapkit ios swift compass

2
推荐指数
1
解决办法
2767
查看次数

Swift - 从 Firestore 检索地理点,如何将它们显示为地图注释

我有以下代码可以检索我存储在 Google Firestore 中的坐标:

    let locationsRef = db.collection("locatioInfo")
    locationsRef.getDocuments { (querySnapshot, err) in
        if let err = err {
            print("Error receiving Firestore snapshot: \(err)")
        } else {
            for document in querySnapshot!.documents {
                print("\(document.documentID) => \(document.data())")
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

产生这个输出:

location1 => ["geopoint": <FIRGeoPoint: (50.086421, 14.452333)>]
location2 => ["geopoint": <FIRGeoPoint: (50.086442, 14.452268)>]
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何将获取的数据FIRGeoPoints转换为CLLocationCoordinates2D或简单地转换为:如何使用这些坐标并将它们显示在地图上?

我有一个MKAnnotationView已经设置好的广告,将它用于硬编码坐标,现在我需要显示获取的坐标。希望这足够清楚,提前致谢。

mapkit ios firebase swift google-cloud-firestore

2
推荐指数
1
解决办法
3232
查看次数

倒圆图填充swift 4

我试图在地图上画一个圆圈,当用户选择选项 1 时,圆圈填充为蓝色,当用户选择选项 2 时,整个地图将填充为蓝色,而圆圈区域为无色。这怎么可能?

`func addRadiusOverlay(forGeotification geotification: Geotification) {

        mapView?.addOverlay(MKCircle(center: geotification.coordinate, radius: 300))
    }`



`func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
        if overlay is MKCircle {
            let circleRenderer = MKCircleRenderer(overlay: overlay)
            circleRenderer.lineWidth = 5.0
            circleRenderer.strokeColor = UIColor(red: 0/255, green: 122/255, blue: 255/255, alpha: 1.0)
            circleRenderer.fillColor = circleRenderer.strokeColor!.withAlphaComponent(0.1)


            return circleRenderer
        }
        return MKOverlayRenderer(overlay: overlay)
    }`
Run Code Online (Sandbox Code Playgroud)

mapkit mkoverlay swift4

2
推荐指数
1
解决办法
533
查看次数