16 if (value.isObject()) {
17 if (value.hasProperty(QStringLiteral(
"latitude")))
18 c.setLatitude(value.property(QStringLiteral(
"latitude")).toNumber());
19 if (value.hasProperty(QStringLiteral(
"longitude")))
20 c.setLongitude(value.property(QStringLiteral(
"longitude")).toNumber());
21 if (value.hasProperty(QStringLiteral(
"altitude")))
22 c.setAltitude(value.property(QStringLiteral(
"altitude")).toNumber());
140QGeoRectangle LocationSingleton::rectangle(
const QVariantList &coordinates)
const
142 QList<QGeoCoordinate> internalCoordinates;
143 for (
const auto &coordinate : coordinates) {
144 if (coordinate.canConvert<QGeoCoordinate>())
145 internalCoordinates << coordinate.value<QGeoCoordinate>();
148 return QGeoRectangle(internalCoordinates);
194QGeoPath LocationSingleton::path(
const QJSValue &value, qreal width)
const
196 QList<QGeoCoordinate> pathList;
198 if (value.isArray()) {
199 quint32 length = value.property(QStringLiteral(
"length")).toUInt();
200 for (quint32 i = 0; i < length; ++i) {
202 QGeoCoordinate c = parseCoordinate(value.property(i), &ok);
204 if (!ok || !c.isValid()) {
213 return QGeoPath(pathList, width);
237QGeoPolygon LocationSingleton::polygon(
const QVariantList &coordinates)
const
239 QList<QGeoCoordinate> internalCoordinates;
240 for (
const auto &coordinate : coordinates) {
241 if (coordinate.canConvert<QGeoCoordinate>())
242 internalCoordinates << coordinate.value<QGeoCoordinate>();
245 return QGeoPolygon(internalCoordinates);
256QGeoPolygon LocationSingleton::polygon(
const QVariantList &perimeter,
const QVariantList &holes)
const
258 QList<QGeoCoordinate> internalCoordinates;
259 for (
const auto &coordinate : perimeter) {
260 if (coordinate.canConvert<QGeoCoordinate>())
261 internalCoordinates << coordinate.value<QGeoCoordinate>();
263 QGeoPolygon poly(internalCoordinates);
265 for (
const auto &h : holes) {
266 if (h.metaType().id() == QMetaType::QVariantList) {
267 QList<QGeoCoordinate> hole;
268 const QVariantList &holeData = h.toList();
269 for (
const auto &coord : holeData) {
270 if (coord.canConvert<QGeoCoordinate>())
271 hole << coord.value<QGeoCoordinate>();