首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MKLocalSearch中使用MKMapView

如何在MKLocalSearch中使用MKMapView
EN

Stack Overflow用户
提问于 2015-05-21 06:26:23
回答 1查看 1.3K关注 0票数 0

我在MKMapView中使用MKLocalSearch。我实现如下

代码语言:javascript
复制
extension MYClass: SendLocationDelegate{

    func sendCoOrdinates(loccoordinate:CLLocation, placemark:CLPlacemark){

        println(" Google VC coordinate is as \(loccoordinate.coordinate.longitude) \(loccoordinate.coordinate.latitude)")
        let location:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude:loccoordinate.coordinate.latitude, longitude: loccoordinate.coordinate.longitude)
        let theSpan : MKCoordinateSpan = MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta:0.01)
        let theRegion : MKCoordinateRegion = MKCoordinateRegion(center: location, span: theSpan)
        self.mapView.setRegion(theRegion, animated: false)

        let request = MKLocalSearchRequest()
        request.region = mapView.region
        let search = MKLocalSearch(request: request)

        search.startWithCompletionHandler({(response: MKLocalSearchResponse!,
            error: NSError!) in

            if error != nil {
                println("Error occured in search: \(error.localizedDescription)")

            } else if response.mapItems.count == 0 {

                println("No matches found")

            } else {

                println("Matches found")

                println("\(response)")

            }
        })



    }


}

输出: Google坐标为72.8561644 19.0176147,搜索中出现错误:操作无法完成。(MKErrorDomain错误1.)为什么会发生这种情况?

编辑:但是,当我将请求更改为

代码语言:javascript
复制
let request = MKLocalSearchRequest()
 request.naturalLanguageQuery = "india"
 //request.region = mapView.region
 let search = MKLocalSearch(request: request)

我得到了很好的回应

{ boundingRegion = "";mapItems =(“{\n isCurrentLocation = 0;\n name =印度;\n placemark =\”印度,印度@ <+23.04117260,+78.89180550> +/- 0.00m,区域CLCircularRegion (标识符:‘<+21.84329084,+82.78786665>半径2237301.34',center:<+21.84329084,+82.78786665>,半径:2237301.34m)\“;\n}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 12:56:39

一切正常工作,fine..Just您在请求时犯了一个错误,它不包含naturalLanguageQuery,如

代码语言:javascript
复制
 let request = MKLocalSearchRequest()
 request.region = mapView.region
 let search = MKLocalSearch(request: request)

在本例中,request.naturalLanguageQuery被设置为nil....so (MKErrorDomain错误1),在苹果文档中,这里naturalLanguageQuery无法包含type.Look,请使用它发出请求。

代码语言:javascript
复制
let request = MKLocalSearchRequest()
 request.naturalLanguageQuery = "india"
 let search = MKLocalSearch(request: request)

可以使用region参数将搜索结果列表缩小到指定区域内或附近的搜索结果列表。指定区域并不能保证结果都在区域内。这只是对搜索引擎的一个提示。因此,region可以在这里充当可选的角色。或者,您可以要求获得更好的结果,例如

代码语言:javascript
复制
let request = MKLocalSearchRequest()
request.naturalLanguageQuery = "india"
request.region = mapView.region
let search = MKLocalSearch(request: request)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30366060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档