ios - 我将如何使用地名然后使用 MKMapView 进行搜索?

标签 ios swift mkmapview mapkit

我有一个随机选择状态的应用程序。让我们说它是纽约,我将如何使用纽约这个名字并按下按钮在 map 中搜索它。我不希望用户必须输入它,我希望它是这样的,所以我按下一个按钮并进行搜索。我已经设置了 map ,但我在这部分遇到了问题。

    func randomStateGenerator() {
    var randomState = Int(arc4random() % 50)
    println(randomState)

    if randomState == 0 {

            println("NEW YORK")


        newyork = SKLabelNode(fontNamed: "Happy Phantom")
        newyork.text = "newyork"
        newyork.zPosition = 22
        newyork.fontSize = 25
        newyork.fontColor = SKColor.blackColor()
        newyork.position = CGPointMake(self.size.width / 2.0, self.size.height / 1.8)
        self.addChild(newyork)



            }

    }

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

    for touch in (touches as! Set<UITouch>) {
        var touch: UITouch = touches.first as! UITouch
        var location = touch.locationInNode(self)
        var node = self.nodeAtPoint(location)


        if node.name == "find" {



        }
    }
}

最佳答案

使用此函数获取您传递的地址的经纬度

func geoCodeUsingAddress(address: String) -> CLLocationCoordinate2D {
    var latitude: Double = 0
    var longitude: Double = 0
    var esc_addr: String = address.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
    var req: String = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=\(esc_addr)"
    var result: String = NSString.stringWithContentsOfURL(NSURL.URLWithString(req), encoding: NSUTF8StringEncoding, error: nil)
    if result {
        var scanner: NSScanner = NSScanner.scannerWithString(result)
        if scanner.scanUpToString("\"lat\" :", intoString: nil) && scanner.scanString("\"lat\" :", intoString: nil) {
            scanner.scanDouble(&latitude)
            if scanner.scanUpToString("\"lng\" :", intoString: nil) && scanner.scanString("\"lng\" :", intoString: nil) {
                scanner.scanDouble(&longitude)
            }
        }
    }
    var center: CLLocationCoordinate2D
    center.latitude = latitude
    center.longitude = longitude
    return center
}

此函数将返回经纬度,借助经纬度在您的 map 中显示它。

关于ios - 我将如何使用地名然后使用 MKMapView 进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32239712/

相关文章:

iphone - 当我放大和缩小时,MKMapView 自定义引脚会发生变化

iphone - desiredAccuracy 和 distanceFilter 之间的区别

ios - 为什么 Xcode 模拟器 View 与 View 层次结构 View 不同

ios - 无法在子类 UITextField 中设置属性占位符的文本颜色

ios - 如何搜索所有目录? objective-c

ios - UITableView 如何在重新排序单元格后调用函数

ios - AVSpeechSynthesizer 音量太低

swift - Pod 类的扩展找不到该类

ios - 转移到 swift 3 xcode 8 后,当我登录 Facebook 时没有任何反应

iOS - MKMapView showAnnotations :animated: with padding?