32 place.setAttribution(attribution);
33 place.setPlaceId(response.value(QStringLiteral(
"id")).toString());
34 place.setVisibility(QLocation::PublicVisibility);
36 QString placeName = response.value(QStringLiteral(
"text")).toString();
37 if (placeName.isEmpty())
38 placeName = response.value(QStringLiteral(
"place_name")).toString();
40 place.setName(placeName);
41 place.setDetailsFetched(
true);
49 if (response.value(QStringLiteral(
"properties")).isObject()) {
50 const QJsonObject properties = response.value(QStringLiteral(
"properties")).toObject();
52 const QString makiString = properties.value(QStringLiteral(
"maki")).toString();
53 if (!makiString.isEmpty()) {
54 QVariantMap iconParameters;
55 iconParameters.insert(QPlaceIcon::SingleUrl,
56 QUrl::fromLocalFile(QStringLiteral(
":/mapbox/") + makiString + QStringLiteral(
".svg")));
59 icon.setParameters(iconParameters);
63 const QString phoneString = properties.value(QStringLiteral(
"tel")).toString();
64 if (!phoneString.isEmpty()) {
65 QPlaceContactDetail phoneDetail;
66 phoneDetail.setLabel(QPlaceContactDetail::Phone);
67 phoneDetail.setValue(phoneString);
68 place.setContactDetails(QPlaceContactDetail::Phone, QList<QPlaceContactDetail>() << phoneDetail);
71 const QString categoryString = properties.value(QStringLiteral(
"category")).toString();
72 if (!categoryString.isEmpty()) {
73 QList<QPlaceCategory> categories;
74 for (
const QString &categoryId : categoryString.split(QStringLiteral(
", "), Qt::SkipEmptyParts)) {
75 QPlaceCategory category;
76 category.setName(QMapboxCommon::mapboxNameForCategory(categoryId));
77 category.setCategoryId(categoryId);
78 categories.append(category);
80 place.setCategories(categories);
88 place.setLocation(QMapboxCommon::parseGeoLocation(response));
93 result.setPlace(place);
94 result.setTitle(place.name());
102: QPlaceSearchReply(parent)
106 setError(UnknownError, QStringLiteral(
"Null reply"));
111 connect(reply, &QNetworkReply::finished,
this, &QPlaceSearchReplyMapbox::onReplyFinished);
112 connect(reply, &QNetworkReply::errorOccurred,
this, &QPlaceSearchReplyMapbox::onNetworkError);
114 connect(
this, &QPlaceReply::aborted, reply, &QNetworkReply::abort);
115 connect(
this, &QObject::destroyed, reply, &QObject::deleteLater);