Searching on a Map

Use the MPMapsIndoors.shared.locationsWith(query:filter:) method to search for content in your MapsIndoors Solution.

Setup a query for the nearest single best matching Location and display the result on the map

let filter = MPFilter()
let query = MPQuery()
query.query = "Office"
query.near = MPPoint(lat: 57.057964, lon: 9.9504112)
query.take = 1

let locations = await MPMapsIndoors.shared.locationsWith(query: query, filter: filter)
if let location = locations?.first {
    self.mapControl?.goTo(entity: location)
}

Setup a query for a group of Locations and display the result on the map

let filter = MPFilter()
let query = MPQuery()
query.categories = ["Office"]
query.max = 50

let locations = await MPMapsIndoors.shared.locationsWith(query: query, filter: filter)
self.mapControl?.setFilter(locations: locations, behavior: .default)
if let location = locations?.first {
    self.mapControl?.currentFloor = location.floor
}

Please note that you are not guaranteed that the visible floor contains any search results, so that is why we change floor in the above example.

Last updated