/*! Returns whether the bounding box \a boundingBox is contained within this bounding box. */ bool QGeoBoundingBox::contains(const QGeoBoundingBox &boundingBox) const { return (contains(boundingBox.topLeft()) && contains(boundingBox.topRight()) && contains(boundingBox.bottomLeft()) && contains(boundingBox.bottomRight())); }
QDeclarativeGeoBoundingBox::QDeclarativeGeoBoundingBox(const QGeoBoundingBox& box, QObject* parent) : QObject(parent), m_declarativeBottomLeft(box.bottomLeft()), m_declarativeBottomRight(box.bottomRight()), m_declarativeTopLeft(box.topLeft()), m_declarativeTopRight(box.topRight()), m_declarativeCenter(box.center()), m_box(box), m_height(box.height()), m_width(box.width()) { }
//------------------------------------------------------------------------------------------------- void GeoPresenter::showBoundingBox(QTreeWidgetItem* routeItem, const QGeoBoundingBox& box) { QTreeWidgetItem* boxItem = new QTreeWidgetItem(routeItem); boxItem->setText(0, "bounding box"); QTreeWidgetItem* nwItem = new QTreeWidgetItem(boxItem); nwItem->setText(0, "NW"); nwItem->setText(1, formatGeoCoordinate(box.topLeft())); QTreeWidgetItem* seItem = new QTreeWidgetItem(boxItem); seItem->setText(0, "SE"); seItem->setText(1, formatGeoCoordinate(box.bottomRight())); }
QString QGeoRoutingManagerEngineNokia::routeRequestString(const QGeoRouteRequest &request) const { QString requestString; int numAreas = request.excludeAreas().count(); if (numAreas > 0) { requestString += "&avoidareas"; for (int i = 0;i < numAreas;++i) { requestString += i == 0 ? "=" : ";"; QGeoBoundingBox box = request.excludeAreas().at(i); requestString += trimDouble(box.topLeft().latitude()); requestString += ","; requestString += trimDouble(box.topLeft().longitude()); requestString += ","; requestString += trimDouble(box.bottomRight().latitude()); requestString += ","; requestString += trimDouble(box.bottomRight().longitude()); } } // TODO: work out what was going on here // - segment and instruction/maneuever functions are mixed and matched // - tried to implement sensible equivalents below // QStringList legAttributes; // if (request.instructionDetail() & QGeoRouteRequest::BasicSegmentData) { // requestString += "&linkattributes=sh,le"; //shape,length // legAttributes.append("links"); // } // // if (request.instructionDetail() & QGeoRouteRequest::BasicInstructions) { // legAttributes.append("maneuvers"); // requestString += "&maneuverattributes=po,tt,le,di"; //position,traveltime,length,direction // if (!(request.instructionDetail() & QGeoRouteRequest::NoSegmentData)) // requestString += ",li"; //link // } QStringList legAttributes; if (request.segmentDetail() & QGeoRouteRequest::BasicSegmentData) { requestString += "&linkattributes=sh,le"; //shape,length legAttributes.append("links"); } if (request.maneuverDetail() & QGeoRouteRequest::BasicManeuvers) { legAttributes.append("maneuvers"); requestString += "&maneuverattributes=po,tt,le,di"; //position,traveltime,length,direction if (!(request.segmentDetail() & QGeoRouteRequest::NoSegmentData)) requestString += ",li"; //link } requestString += "&routeattributes=sm,sh,bb,lg"; //summary,shape,boundingBox,legs if (legAttributes.count() > 0) { requestString += "&legattributes="; requestString += legAttributes.join(","); } requestString += "&departure="; requestString += QDateTime::currentDateTime().toUTC().toString("yyyy-MM-ddThh:mm:ssZ"); requestString += "&instructionformat=text"; requestString += "&language="; requestString += locale().name(); return requestString; }