15 if (value.isObject()) {
16 if (value.hasProperty(QStringLiteral(
"latitude")))
17 c.setLatitude(value.property(QStringLiteral(
"latitude")).toNumber());
18 if (value.hasProperty(QStringLiteral(
"longitude")))
19 c.setLongitude(value.property(QStringLiteral(
"longitude")).toNumber());
20 if (value.hasProperty(QStringLiteral(
"altitude")))
21 c.setAltitude(value.property(QStringLiteral(
"altitude")).toNumber());
139QGeoRectangle LocationSingleton::rectangle(
const QVariantList &coordinates)
const
141 QList<QGeoCoordinate> internalCoordinates;
142 for (
const auto &coordinate : coordinates) {
143 if (coordinate.canConvert<QGeoCoordinate>())
144 internalCoordinates << coordinate.value<QGeoCoordinate>();
147 return QGeoRectangle(internalCoordinates);
193QGeoPath LocationSingleton::path(
const QJSValue &value, qreal width)
const
195 QList<QGeoCoordinate> pathList;
197 if (value.isArray()) {
198 quint32 length = value.property(QStringLiteral(
"length")).toUInt();
199 for (quint32 i = 0; i < length; ++i) {
201 QGeoCoordinate c = parseCoordinate(value.property(i), &ok);
203 if (!ok || !c.isValid()) {
212 return QGeoPath(pathList, width);
236QGeoPolygon LocationSingleton::polygon(
const QVariantList &coordinates)
const
238 QList<QGeoCoordinate> internalCoordinates;
239 for (
const auto &coordinate : coordinates) {
240 if (coordinate.canConvert<QGeoCoordinate>())
241 internalCoordinates << coordinate.value<QGeoCoordinate>();
244 return QGeoPolygon(internalCoordinates);
255QGeoPolygon LocationSingleton::polygon(
const QVariantList &perimeter,
const QVariantList &holes)
const
257 QList<QGeoCoordinate> internalCoordinates;
258 for (
const auto &coordinate : perimeter) {
259 if (coordinate.canConvert<QGeoCoordinate>())
260 internalCoordinates << coordinate.value<QGeoCoordinate>();
262 QGeoPolygon poly(internalCoordinates);
264 for (
const auto &h : holes) {
265 if (h.metaType().id() == QMetaType::QVariantList) {
266 QList<QGeoCoordinate> hole;
267 const QVariantList &holeData = h.toList();
268 for (
const auto &coord : holeData) {
269 if (coord.canConvert<QGeoCoordinate>())
270 hole << coord.value<QGeoCoordinate>();