Как объединить название компании и адрес, чтобы найти достопримечательность с помощью текстового поиска API Google АдресIOS

Программируем под IOS
Ответить
Anonymous
 Как объединить название компании и адрес, чтобы найти достопримечательность с помощью текстового поиска API Google Адрес

Сообщение Anonymous »

Я создаю приложение, использующее Apple MapKit, а также Google Places API. Причина в основном в экономии затрат.
Моя текущая ситуация такова: у меня есть MKMapItem, и я хочу найти соответствующий GMSPlace. Я хочу использовать GMSPlace, чтобы получить дополнительную информацию о достопримечательностях, например, о времени работы. Моя идея заключалась в использовании TextSearch от Google, и я строил свое решение на основе следующего сайта поддержки.
К сожалению, я не могу найти соответствующие места таким образом, так как мой запрос возвращает пустые наборы, когда получает название места, а также его адрес.
Мой код API выглядит следующим образом и работает с общими запросами. Если задать ему такие вопросы, как «пицца», можно получить хорошие результаты в правильном регионе. Однако когда я предоставляю следующий запрос и смещение местоположения, я получаю пустой набор результатов. То же самое происходит, когда я предоставляю точные данные адреса.
  • "P&M Photo Media Luzern"

    CLLocationCoordinate2D(широта: 47,050291, долгота: 8,306158)

Код: Выделить всё

class PlacesViewModel: ObservableObject {
@Published var placeResults: [GMSPlace] = []
@Published var placeResult: GMSPlace? = nil
@Published var errorMessage: String? = nil

func searchPlaces(query: String, location: CLLocationCoordinate2D) {
// Define the properties we want to retrieve
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.placeID, GMSPlaceProperty.openingHours, GMSPlaceProperty.website].map { $0.rawValue }

// Create the GMSPlaceSearchByTextRequest object
let request = GMSPlaceSearchByTextRequest(textQuery: query, placeProperties: myProperties)
request.maxResultCount = 5
request.rankPreference = .distance

request.locationBias = GMSPlaceCircularLocationOption(location, 500.0)

// Callback to handle the response
let callback: GMSPlaceSearchByTextResultCallback = { [weak self] results, error in
guard let self = self else { return }

if let error = error {
DispatchQueue.main.async {
self.errorMessage = error.localizedDescription
}
return
}

guard let results = results else {
return
}

DispatchQueue.main.async {
self.placeResults = results
print(self.placeResults)
//self.placeResult = results[0]
}
}

// Perform the search
GMSPlacesClient.shared().searchByText(with: request, callback: callback)
}
}
Есть ли у кого-нибудь идеи о том, как составить запрос? Или какую функцию/API я могу использовать вместо этого?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -using-the
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»