[3.x] การค้นหาสถานที่และเส้นทาง - MetamediaTechnology/longdo-map-demo-ios GitHub Wiki

การแสดงคำแนะนำสถานที่

  1. สร้างตัวแปรชนิด LMSuggestOptions และกำหนดขอบเขตการแสดงคำแนะนำที่ต้องการ

    let options = LMSuggestOptions()
    options.limit = 20 //จำนวนผลการค้นหา
    
  2. กำหนดคำค้นหา ขอบเขตการค้นหา และฟังก์ชั่นสำหรับจัดการผลลัพธ์ซึ่งจะคืนมาในรูปแบบแถวลำดับของ String ลงในฟังก์ชั่น suggestKeyword จากตัวอย่างเป็นการแสดงคำแนะนำด้วยคำว่า bank โดยสมมติให้ตัวแปร LongdoMapView ชื่อ map

    map.suggestKeyword("bank", with: options, result: { keyword, error in
        if let suggest = keyword {
            print(suggest)
        }
        else {
            print(error ?? "no result")
        }
    })
    

การค้นหาสถานที่

  1. สร้างตัวแปรชนิด LMSearchOptions และกำหนดขอบเขตการค้นหาที่ต้องการ

    let options = LMSearchOptions()
    options.location = map.centerCoordinate //ศูนย์กลางการค้นหา
    options.span = "100km" //ระยะการค้นหา
    options.limit = 20 //จำนวนผลการค้นหา
    
  2. กำหนดคำค้นหา ขอบเขตการค้นหา และฟังก์ชั่นสำหรับจัดการผลลัพธ์ซึ่งจะคืนมาในรูปแบบแถวลำดับของ LMPinAnnotation ลงในฟังก์ชั่น searchKeyword จากตัวอย่างเป็นการค้นหาสถานที่ด้วยคำว่า bank โดยสมมติให้ตัวแปร LongdoMapView ชื่อ map

    map.searchKeyword("bank", with: options, result: { poi, error in
        if let pin = poi {
            DispatchQueue.main.async {
                self.map.addAnnotations(pin) //ปักหมุดลงบนแผนที่
            }
        }
        else {
            print(error ?? "no result")
        }
    })
    

การค้นหาเส้นทาง

  1. สร้างตัวแปรชนิด LMRouteOptions และกำหนดขอบเขตการค้นหาที่ต้องการ

    let options = LMRouteOptions()
    options.location = .MINIMUM_DISTANCE //เลือกเส้นทางที่ใกล้ที่สุด
    options.allowedFerry = false //เลี่ยงการขึ้นเรือ
    options.allowedTollway = false //เลี่ยงทางด่วน
    
  2. กำหนดจุดเริ่มต้น สิ้นสุด ขอบเขตการค้นหา และฟังก์ชั่นสำหรับจัดการผลลัพธ์ซึ่งจะคืนมาในรูปแบบของ LMRouteResult ลงในฟังก์ชั่น route จากตัวอย่างเป็นการค้นหาเส้นทางจากตำแหน่งปัจจุบันถึงจุดศูนย์กลางของแผนที่ โดยสมมติให้ตัวแปร LongdoMapView ชื่อ map

    map.route(from: map.userLocation.coordinate, to: map.centerCoordinate, with: options, result: {route, error in
        DispatchQueue.main.async {
            for guide in route?.guide ?? [] {
                self.map.addOverlay(guide.path) //วาดเส้นทางลงบนแผนที่
            }
        }
        if let err = error {
            print(err)
        }
    })
    

การกำหนดภาษาของผลลัพธ์

map.language = LMLanguage.THAI

เป็นการกำหนดให้ผลลัพธ์ที่เรียกผ่าน LongdoMapView ชื่อ map หลังจากคำสั่งนี้ใช้ภาษาไทยในการแสดงผล