void tst_QGeoAddress::countryCodeTest() { QGeoAddress testObj; QVERIFY2(testObj.countryCode() == QString(), "Wrong default value"); testObj.setCountryCode("testText"); QVERIFY2(testObj.countryCode() == "testText", "Wrong value returned"); }
/*! Returns true if this address is equal to \a other, otherwise returns false. \since 1.1 */ bool QGeoAddress::operator==(const QGeoAddress &other) const { #ifdef QGEOADDRESS_DEBUG qDebug() << "country" << (d->sCountry == other.country()); qDebug() << "countryCode" << (d->sCountryCode == other.countryCode()); qDebug() << "state:" << (d->sState == other.state()); qDebug() << "county:" << (d->sCounty == other.county()); qDebug() << "city:" << (d->sCity == other.city()); qDebug() << "district:" << (d->sDistrict == other.district()); qDebug() << "street:" << (d->sStreet == other.street()); qDebug() << "postcode:" << (d->sPostCode == other.postcode()); #endif return d->sCountry == other.country() && d->sCountryCode == other.countryCode() && d->sState == other.state() && d->sCounty == other.county() && d->sCity == other.city() && d->sDistrict == other.district() && d->sStreet == other.street() && d->sPostCode == other.postcode(); }
void QDeclarativeGeoAddress::setAddress(const QGeoAddress& address) { // Elaborate but takes care of emiting needed signals setCountry(address.country()); setCountryCode(address.countryCode()); setState(address.state()); setCounty(address.county()); setCity(address.city()); setDistrict(address.district()); setStreet(address.street()); setPostcode(address.postcode()); m_address = address; }
void GeoHelper::searchFinishedSlot(QGeoSearchReply *reply) { if (reply->error() == QGeoSearchReply::NoError) { QScriptEngine scriptEngine; QScriptValue replyObject = scriptEngine.newArray(); QList<QGeoPlace> places = reply->places(); for (int i = 0; i < places.count(); i++) { QScriptValue placeObject = scriptEngine.newObject(); QScriptValue coordinateObject = scriptEngine.newObject(); QGeoCoordinate coordinate = places[i].coordinate(); coordinateObject.setProperty("latitude", QScriptValue(coordinate.latitude())); coordinateObject.setProperty("longitude", QScriptValue(coordinate.longitude())); placeObject.setProperty("coordinate", coordinateObject); QScriptValue addressObject = scriptEngine.newObject(); QGeoAddress address = places[i].address(); if (!address.isEmpty()) { addressObject.setProperty("country", address.country()); addressObject.setProperty("countryCode", address.countryCode()); addressObject.setProperty("state", address.state()); addressObject.setProperty("county", address.county()); addressObject.setProperty("city", address.city()); addressObject.setProperty("district", address.district()); addressObject.setProperty("street", address.street()); addressObject.setProperty("postcode", address.postcode()); } placeObject.setProperty("address", addressObject); replyObject.setProperty(i, placeObject); } QScriptValue fun = scriptEngine.evaluate("(function(a) { return JSON.stringify(a); })"); QScriptValueList args; args << replyObject; QScriptValue result = fun.call(QScriptValue(), args); emit searchReply(result.toString()); } }
/* Returns a single formatted string representing the \a address. Lines of the address are delimited by \a newLine. By default lines are delimited by <br/>. The \l {QGeoAddress::countryCode} {countryCode} of the \a address determines the format of the resultant string. */ static QString formattedAddress(const QGeoAddress &address, const QString &newLine = QLatin1String("<br/>")) { const QString Comma(QStringLiteral(", ")); const QString Dash(QStringLiteral("-")); const QString Space(QStringLiteral(" ")); QString text; if (address.countryCode() == QLatin1String("ALB") || address.countryCode() == QLatin1String("MTQ")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.postalCode() << Comma << address.city() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("AND") || address.countryCode() == QLatin1String("AUT") || address.countryCode() == QLatin1String("FRA") || address.countryCode() == QLatin1String("GLP") || address.countryCode() == QLatin1String("GUF") || address.countryCode() == QLatin1String("ITA") || address.countryCode() == QLatin1String("LUX") || address.countryCode() == QLatin1String("MCO") || address.countryCode() == QLatin1String("REU") || address.countryCode() == QLatin1String("RUS") || address.countryCode() == QLatin1String("SMR") || address.countryCode() == QLatin1String("VAT")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.postalCode() << Space << address.city() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("ARE") || address.countryCode() == QLatin1String("BHS")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Space << address.city() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("AUS")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << (address.district().isEmpty() ? address.city() : address.district()) << Space << address.state() << Space << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("BHR")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Comma << address.city() << Comma << address.state() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("BRA")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Space << address.city() << Dash << address.state() << Space << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("BRN") || address.countryCode() == QLatin1String("JOR") || address.countryCode() == QLatin1String("LBN") || address.countryCode() == QLatin1String("NZL")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Space << address.city() << Space << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("CAN") || address.countryCode() == QLatin1String("USA") || address.countryCode() == QLatin1String("VIR")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.city() << Comma << address.state() << Space << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("CHN")) { text += addressLine(QStringList() << address.street() << Comma << address.city() << newLine); text += addressLine(QStringList() << address.postalCode() << Space << address.state() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("CHL")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.postalCode() << Space << address.district() << Comma << address.city() << Comma << address.state() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("CYM")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.state() << Space << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("GBR")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Comma << address.city() << Comma << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("GIB")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.city() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("HKG")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << newLine); text += addressLine(QStringList() << address.city() << newLine); } else if (address.countryCode() == QLatin1String("IND")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.city() << Space << address.postalCode() << Space << address.state() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("IDN") || address.countryCode() == QLatin1String("JEY") || address.countryCode() == QLatin1String("LVA")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.city() << Comma << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("IRL")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Comma << address.state() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("KWT")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.postalCode() << Comma << address.district() << Comma << address.city() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("MLT") || address.countryCode() == QLatin1String("SGP") || address.countryCode() == QLatin1String("UKR")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.city() << Space << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("MEX")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << newLine); text += addressLine(QStringList() << address.postalCode() << Space << address.city() << Comma << address.state() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("MYS")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.postalCode() << Space << address.city() << newLine); text += addressLine(QStringList() << address.state() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("OMN")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Comma << address.postalCode() << Comma << address.city() << Comma << address.country() << newLine); } else if (address.countryCode() == QLatin1String("PRI")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Comma << address.city() << Comma << address.state() << Comma << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("QAT")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Space << address.city() << Comma << address.country() << newLine); } else if (address.countryCode() == QLatin1String("SAU")) { text += addressLine(QStringList() << address.street() << Space << address.district() << newLine); text += addressLine(QStringList() << address.city() << Space << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("TWN")) { text += addressLine(QStringList() << address.street() << Comma << address.district() << Comma << address.city() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("THA")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Comma << address.city() << Space << address.postalCode() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("TUR")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.postalCode() << Space << address.district() << Comma << address.city() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("VEN")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.city() << Space << address.postalCode() << Comma << address.state() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else if (address.countryCode() == QLatin1String("ZAF")) { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.district() << Comma << address.city() << newLine); text += addressLine(QStringList() << address.country() << newLine); } else { text += addressLine(QStringList() << address.street() << newLine); text += addressLine(QStringList() << address.postalCode() << Space << address.city() << newLine); text += addressLine(QStringList() << address.country() << newLine); } text.chop(newLine.length()); return text; }
void QPlaceDetailsReplyImpl::replyFinished() { if (m_reply->error() != QNetworkReply::NoError) { switch (m_reply->error()) { case QNetworkReply::OperationCanceledError: setError(CancelError, "Request canceled."); break; case QNetworkReply::ContentNotFoundError: setError(PlaceDoesNotExistError, QString::fromLatin1("The id, %1, does not reference an existing place") .arg(m_placeId)); break; default: setError(CommunicationError, "Network error."); } return; } QJsonDocument document = QJsonDocument::fromJson(m_reply->readAll()); if (!document.isObject()) { setError(ParseError, QCoreApplication::translate(NOKIA_PLUGIN_CONTEXT_NAME, PARSE_ERROR)); return; } QJsonObject object = document.object(); QPlace place; place.setPlaceId(object.value(QLatin1String("placeId")).toString()); //const QUrl view = object.value(QLatin1String("view")).toString(); place.setName(object.value(QLatin1String("name")).toString()); //if (object.contains(QLatin1String("distance"))) // double distance = object.value(QLatin1String("distance")).toDouble(); //if (object.contains(QLatin1String("alternativeNames"))) { // QJsonArray alternativeNames = object.value(QLatin1String("alternativeNames")).toArray(); //} QGeoLocation location; QJsonObject locationObject = object.value(QLatin1String("location")).toObject(); //if (locationObject.contains(QLatin1String("locationId"))) // const QString locationId = locationObject.value(QLatin1String("locationId")).toString(); QJsonArray position = locationObject.value(QLatin1String("position")).toArray(); location.setCoordinate(QGeoCoordinate(position.at(0).toDouble(), position.at(1).toDouble())); QGeoAddress address; QJsonObject addressObject = locationObject.value(QLatin1String("address")).toObject(); address.setText(addressObject.value(QLatin1String("text")).toString()); address.setCountry(addressObject.value(QLatin1String("country")).toString()); address.setCountryCode(addressObject.value(QLatin1String("countryCode")).toString()); QString house; QString street; if (addressObject.contains(QLatin1String("house"))) house = addressObject.value(QLatin1String("house")).toString(); if (addressObject.contains(QLatin1String("street"))) street = addressObject.value(QLatin1String("street")).toString(); if (countryTableContains(address.countryCode())) { if (!house.isEmpty() && !street.startsWith(house)) street = house + QLatin1Char(' ') + street; } else { if (!house.isEmpty() && !street.endsWith(house)) street += QLatin1Char(' ') + house; } address.setStreet(street); if (addressObject.contains(QLatin1String("city"))) address.setCity(addressObject.value(QLatin1String("city")).toString()); if (addressObject.contains(QLatin1String("district"))) address.setDistrict(addressObject.value(QLatin1String("district")).toString()); if (addressObject.contains(QLatin1String("state"))) address.setState(addressObject.value(QLatin1String("state")).toString()); if (addressObject.contains(QLatin1String("county"))) address.setCounty(addressObject.value(QLatin1String("county")).toString()); if (addressObject.contains(QLatin1String("postalCode"))) address.setPostalCode(addressObject.value(QLatin1String("postalCode")).toString()); location.setAddress(address); if (locationObject.contains(QLatin1String("bbox"))) { QJsonArray bbox = locationObject.value(QLatin1String("bbox")).toArray(); QGeoRectangle box(QGeoCoordinate(bbox.at(3).toDouble(), bbox.at(0).toDouble()), QGeoCoordinate(bbox.at(1).toDouble(), bbox.at(2).toDouble())); location.setBoundingBox(box); } place.setLocation(location); place.setCategories(parseCategories(object.value(QLatin1String("categories")).toArray(), m_engine)); place.setIcon(m_engine->icon(object.value(QLatin1String("icon")).toString(), place.categories())); if (object.contains(QLatin1String("contacts"))) { QJsonObject contactsObject = object.value(QLatin1String("contacts")).toObject(); if (contactsObject.contains(QLatin1String("phone"))) { place.setContactDetails(QPlaceContactDetail::Phone, parseContactDetails(contactsObject.value(QLatin1String("phone")).toArray())); } if (contactsObject.contains(QLatin1String("fax"))) { place.setContactDetails(QPlaceContactDetail::Fax, parseContactDetails(contactsObject.value(QLatin1String("fax")).toArray())); } if (contactsObject.contains(QLatin1String("website"))) { place.setContactDetails(QPlaceContactDetail::Website, parseContactDetails(contactsObject.value(QLatin1String("website")).toArray())); } if (contactsObject.contains(QLatin1String("email"))) { place.setContactDetails(QPlaceContactDetail::Email, parseContactDetails(contactsObject.value(QLatin1String("email")).toArray())); } } //if (object.contains(QLatin1String("verifiedByOwner"))) // bool verifiedByOwner = object.value(QLatin1String("verifiedByOwner")).toBool(); if (object.contains(QLatin1String("attribution"))) place.setAttribution(object.value(QLatin1String("attribution")).toString()); if (object.contains(QLatin1String("supplier"))) { place.setSupplier(parseSupplier(object.value(QLatin1String("supplier")).toObject(), m_engine)); } if (object.contains(QLatin1String("ratings"))) { QJsonObject ratingsObject = object.value(QLatin1String("ratings")).toObject(); QPlaceRatings ratings; ratings.setAverage(ratingsObject.value(QLatin1String("average")).toDouble()); ratings.setCount(ratingsObject.value(QLatin1String("count")).toDouble()); ratings.setMaximum(5.0); place.setRatings(ratings); } if (object.contains(QLatin1String("extended"))) { QJsonObject extendedObject = object.value(QLatin1String("extended")).toObject(); foreach (const QString &key, extendedObject.keys()) { QJsonObject attributeObject = extendedObject.value(key).toObject(); QPlaceAttribute attribute; attribute.setLabel(attributeObject.value(QLatin1String("label")).toString()); attribute.setText(attributeObject.value(QLatin1String("text")).toString()); if (key == QLatin1String("payment")) place.setExtendedAttribute(QPlaceAttribute::Payment, attribute); else if (key == QLatin1String("openingHours")) place.setExtendedAttribute(QPlaceAttribute::OpeningHours, attribute); else place.setExtendedAttribute(key, attribute); } }