本文整理汇总了C++中CoordBox::topRight方法的典型用法代码示例。如果您正苦于以下问题:C++ CoordBox::topRight方法的具体用法?C++ CoordBox::topRight怎么用?C++ CoordBox::topRight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CoordBox
的用法示例。
在下文中一共展示了CoordBox::topRight方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: showChanges
bool DirtyListDescriber::showChanges(QWidget* aParent)
{
QDialog* dlg = new QDialog(aParent);
Ui.setupUi(dlg);
dlg->setWindowFlags(dlg->windowFlags() & ~Qt::WindowContextHelpButtonHint);
theListWidget = Ui.ChangesList;
runVisit();
CoordBox bbox = theDocument->getDirtyOrOriginLayer()->boundingBox();
QString bboxComment = QString("BBOX:%1,%2,%3,%4")
.arg(QString::number(bbox.bottomLeft().x(), 'f', 2))
.arg(QString::number(bbox.bottomLeft().y(), 'f', 2))
.arg(QString::number(bbox.topRight().x(), 'f', 2))
.arg(QString::number(bbox.topRight().y(), 'f', 2));
QString statComment = QString("ADD:%1 UPD:%2 DEL:%3").arg(glbAdded).arg(glbUpdated).arg(glbDeleted);
glbChangeSetComment = bboxComment + " " + statComment;
Ui.edChangesetComment->setText(glbChangeSetComment);
Ui.edChangesetComment->selectAll();
bool ok = (dlg->exec() == QDialog::Accepted);
if (!Ui.edChangesetComment->text().isEmpty())
glbChangeSetComment = Ui.edChangesetComment->text();
else
glbChangeSetComment = "-";
Task = Ui.ChangesList->count();
SAFE_DELETE(dlg)
return ok;
}
示例2: downloadOSM
bool downloadOSM(QWidget* aParent, const QString& aWeb, const QString& aUser, const QString& aPassword, const CoordBox& aBox , Document* theDocument, Layer* theLayer)
{
if (checkForConflicts(theDocument))
{
QMessageBox::warning(aParent,QApplication::translate("Downloader","Unresolved conflicts"), QApplication::translate("Downloader","Please resolve existing conflicts first"));
return false;
}
Downloader Rcv(aUser, aPassword);
QString URL = Rcv.getURLToMap();
if ((fabs(aBox.bottomLeft().x()) < 180.0 && fabs(aBox.topRight().x()) > 180.0)
|| (fabs(aBox.bottomLeft().x()) > 180.0 && fabs(aBox.topRight().x()) < 180.0)) {
/* Check for +-180 meridian, and split query in two if necessary */
int sign = (aBox.bottomLeft().x() > 0) ? 1 : -1;
CoordBox q1 = aBox, q2 = aBox;
if (aBox.bottomLeft().x() > 0) {
q1.setRight(180*sign);
q2.setLeft(-180*sign);
q2.setRight(q2.right()-360);
} else {
q1.setLeft(180*sign);
q2.setRight(-180*sign);
q2.setLeft(q2.left()+360);
}
return downloadOSM(aParent, aWeb, aUser, aPassword, q1, theDocument, theLayer)
&& downloadOSM(aParent, aWeb, aUser, aPassword, q2, theDocument, theLayer);
} else {
/* Normal code path */
URL = URL.arg(aBox.bottomLeft().x(), 0, 'f').arg(aBox.bottomLeft().y(), 0, 'f').arg(aBox.topRight().x(), 0, 'f').arg(aBox.topRight().y(), 0, 'f');
QUrl theUrl(aWeb+URL);
return downloadOSM(aParent, theUrl, aUser, aPassword, theDocument, theLayer);
}
}
示例3: setBoundingBox
void NativeRenderDialog::setBoundingBox(CoordBox aBBox)
{
ui.sbMinLat->setValue(aBBox.bottomLeft().y());
ui.sbMaxLat->setValue(aBBox.topLeft().y());
ui.sbMinLon->setValue(aBBox.topLeft().x());
ui.sbMaxLon->setValue(aBBox.topRight().x());
prtW->updatePreview();
}
示例4: downloadTracksFromOSM
bool downloadTracksFromOSM(QWidget* Main, const QString& aWeb, const QString& aUser, const QString& aPassword, const CoordBox& aBox , Document* theDocument)
{
Downloader theDownloader(aUser, aPassword);
QList<TrackLayer*> theTracklayers;
//TrackMapLayer* trackLayer = new TrackMapLayer(QApplication::translate("Downloader","Downloaded tracks"));
//theDocument->add(trackLayer);
IProgressWindow* aProgressWindow = dynamic_cast<IProgressWindow*>(Main);
if (!aProgressWindow)
return false;
QProgressDialog* dlg = aProgressWindow->getProgressDialog();
dlg->setWindowTitle(QApplication::translate("Downloader","Parsing..."));
QProgressBar* Bar = aProgressWindow->getProgressBar();
Bar->setTextVisible(false);
Bar->setMaximum(11);
QLabel* Lbl = aProgressWindow->getProgressLabel();
Lbl->setText(QApplication::translate("Downloader","Parsing XML"));
if (dlg)
dlg->show();
theDownloader.setAnimator(dlg,Lbl,Bar,true);
for (int Page=0; ;++Page)
{
Lbl->setText(QApplication::translate("Downloader","Downloading trackpoints %1-%2").arg(Page*5000+1).arg(Page*5000+5000));
QString URL = theDownloader.getURLToTrackPoints();
URL = URL.arg(aBox.bottomLeft().x()).
arg(aBox.bottomLeft().y()).
arg(aBox.topRight().x()).
arg(aBox.topRight().y()).
arg(Page);
QUrl theUrl(aWeb+URL);
if (!theDownloader.go(theUrl))
return false;
if (theDownloader.resultCode() != 200)
return false;
int Before = theTracklayers.size();
QByteArray Ar(theDownloader.content());
bool OK = importGPX(Main, Ar, theDocument, theTracklayers, true);
if (!OK)
return false;
if (Before == theTracklayers.size())
break;
theTracklayers[theTracklayers.size()-1]->setName(QApplication::translate("Downloader", "Downloaded track - nodes %1-%2").arg(Page*5000+1).arg(Page*5000+5000));
}
return true;
}
示例5: toXML
bool DrawingLayer::toXML(QXmlStreamWriter& stream, bool asTemplate, QProgressDialog * progress)
{
bool OK = true;
stream.writeStartElement(metaObject()->className());
Layer::toXML(stream, asTemplate, progress);
if (!asTemplate) {
stream.writeStartElement("osm");
stream.writeAttribute("version", "0.6");
stream.writeAttribute("generator", QString("%1 %2").arg(STRINGIFY(PRODUCT)).arg(STRINGIFY(VERSION)));
if (p->Features.size()) {
stream.writeStartElement("bound");
CoordBox layBB = boundingBox();
QString S = QString().number(layBB.bottomLeft().y(),'f',6) + ",";
S += QString().number(layBB.bottomLeft().x(),'f',6) + ",";
S += QString().number(layBB.topRight().y(),'f',6) + ",";
S += QString().number(layBB.topRight().x(),'f',6);
stream.writeAttribute("box", S);
stream.writeAttribute("origin", QString("http://www.openstreetmap.org/api/%1").arg(M_PREFS->apiVersion()));
stream.writeEndElement();
}
QList<MapFeaturePtr>::iterator it;
for(it = p->Features.begin(); it != p->Features.end(); it++)
(*it)->toXML(stream, progress);
stream.writeEndElement();
QList<CoordBox> downloadBoxes = p->theDocument->getDownloadBoxes(this);
if (downloadBoxes.size() && p->theDocument->getLastDownloadLayerTime().secsTo(QDateTime::currentDateTime()) < 12*3600) { // Do not export downloaded areas if older than 12h
stream.writeStartElement("DownloadedAreas");
QListIterator<CoordBox>it(downloadBoxes);
while(it.hasNext()) {
it.next().toXML("DownloadedBoundingBox", stream);
}
stream.writeEndElement();
}
}
stream.writeEndElement();
return OK;
}
示例6: downloadOSM
bool downloadOSM(MainWindow* Main, const CoordBox& aBox , Document* theDocument)
{
QString osmWebsite, osmUser, osmPwd;
static bool DownloadRaw = false;
QDialog * dlg = new QDialog(Main);
osmWebsite = M_PREFS->getOsmApiUrl();
osmUser = M_PREFS->getOsmUser();
osmPwd = M_PREFS->getOsmPassword();
Ui::DownloadMapDialog ui;
ui.setupUi(dlg);
SlippyMapWidget* SlippyMap = new SlippyMapWidget(ui.groupBox);
#ifndef _MOBILE
SlippyMap->setMinimumHeight(256);
#endif
CoordBox Clip(aBox);
SlippyMap->setViewportArea(Clip);
ui.verticalLayout->addWidget(SlippyMap);
QObject::connect(SlippyMap, SIGNAL(redraw()), ui.FromMap, SLOT(toggle()));
BookmarkListIterator i(*(M_PREFS->getBookmarks()));
while (i.hasNext()) {
i.next();
if (i.value().deleted == false)
ui.Bookmarks->addItem(i.key());
}
ui.edXapiUrl->setText(QString("*[bbox=%1,%2,%3,%4]").arg(aBox.bottomLeft().x(), 0, 'f').arg(aBox.bottomLeft().y(), 0, 'f').arg(aBox.topRight().x(), 0, 'f').arg(aBox.topRight().y(), 0, 'f'));
ui.IncludeTracks->setChecked(DownloadRaw);
ui.ResolveRelations->setChecked(M_PREFS->getResolveRelations());
bool OK = true, retry = true, directAPI = false;
QString directUrl;
while (retry) {
retry = false;
#ifdef _MOBILE
dlg->setWindowState(Qt::WindowMaximized);
#endif
if (dlg->exec() == QDialog::Accepted)
{
DownloadRaw = false;
if (ui.FromBookmark->isChecked())
{
Clip = M_PREFS->getBookmarks()->value(ui.Bookmarks->currentText()).Coordinates;
}
else if (ui.FromView->isChecked())
{
Clip = aBox;
}
else if (ui.FromLink->isChecked()) {
QString link = ui.Link->text();
if (link.contains("/api/")) {
directAPI=true;
directUrl = link;
} else if (link.contains("/browse/")) {
QString tag("/browse/");
int ix = link.lastIndexOf(tag) + tag.length();
directUrl = M_PREFS->getOsmApiUrl();
if (!directUrl.endsWith("/")) directUrl += "/";
directUrl += link.right(link.length() - ix);
if (!directUrl.endsWith("/")) directUrl += "/";
directUrl += "full";
directAPI=true;
} else if (link.startsWith("way") || link.startsWith("node") || link.startsWith("relation")) {
directUrl = M_PREFS->getOsmApiUrl();
if (!directUrl.endsWith("/")) directUrl += "/";
directUrl += link;
directAPI=true;
} else {
OsmLink ol(link);
Clip = ol.getCoordBox();
if (Clip.isNull() || Clip.isEmpty())
retry = true;
}
}
else if (ui.FromXapi->isChecked())
{
directAPI = true;
directUrl = M_PREFS->getXapiUrl();
if (!directUrl.endsWith("/")) directUrl += "/";
directUrl += ui.edXapiUrl->text();
}
else if (ui.FromMap->isChecked())
{
QRectF R(SlippyMap->viewArea());
Clip = CoordBox(Coord(R.x(), R.y()), Coord(R.x()+R.width(), R.y()+R.height()));
}
if (retry) continue;
Main->view()->setUpdatesEnabled(false);
Layer* theLayer = new DrawingLayer(QApplication::translate("Downloader","%1 download").arg(QDateTime::currentDateTime().toString(Qt::ISODate)));
theDocument->add(theLayer);
M_PREFS->setResolveRelations(ui.ResolveRelations->isChecked());
if (directAPI) {
if (ui.FromXapi->isChecked())
theLayer->setUploadable(false);
OK = downloadOSM(Main,QUrl(QUrl::fromEncoded(directUrl.toLatin1())),osmUser,osmPwd,theDocument,theLayer);
}
else
OK = downloadOSM(Main,osmWebsite,osmUser,osmPwd,Clip,theDocument,theLayer);
if (OK && ui.IncludeTracks->isChecked())
//.........这里部分代码省略.........
示例7: downloadOpenstreetbugs
bool downloadOpenstreetbugs(MainWindow* Main, const CoordBox& aBox, Document* theDocument, SpecialLayer* theLayer)
{
QUrl osbUrl;
osbUrl.setUrl(M_PREFS->getOpenStreetBugsUrl());
osbUrl.setPath(osbUrl.path() + "getGPX");
if (Main)
Main->view()->setUpdatesEnabled(false);
Downloader theDownloader("", "");
QList<TrackLayer*> theTracklayers;
SpecialLayer* trackLayer = theLayer;
if (!trackLayer) {
SpecialLayer* trackLayer = new SpecialLayer(QApplication::translate("Downloader","OpenStreetBugs"),Layer::OsmBugsLayer);
trackLayer->setUploadable(false);
theDocument->add(trackLayer);
}
theTracklayers << trackLayer;
IProgressWindow* aProgressWindow = dynamic_cast<IProgressWindow*>(Main);
if (!aProgressWindow)
return false;
QProgressDialog* dlg = aProgressWindow->getProgressDialog();
dlg->setWindowTitle(QApplication::translate("Downloader","Parsing..."));
QProgressBar* Bar = aProgressWindow->getProgressBar();
Bar->setTextVisible(false);
Bar->setMaximum(11);
QLabel* Lbl = aProgressWindow->getProgressLabel();
Lbl->setText(QApplication::translate("Downloader","Parsing XML"));
if (dlg)
dlg->show();
theDownloader.setAnimator(dlg,Lbl,Bar,true);
Lbl->setText(QApplication::translate("Downloader","Downloading points"));
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
QUrlQuery theQuery(osbUrl);
#define theQuery theQuery
#else
#define theQuery osbUrl
#endif
theQuery.addQueryItem("t", COORD2STRING(aBox.topRight().y()));
theQuery.addQueryItem("l", COORD2STRING(aBox.bottomLeft().x()));
theQuery.addQueryItem("b", COORD2STRING(aBox.bottomLeft().y()));
theQuery.addQueryItem("r", COORD2STRING(aBox.topRight().x()));
theQuery.addQueryItem("open", "yes");
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
osbUrl.setQuery(theQuery);
#endif
#undef theQuery
if (!theDownloader.go(osbUrl))
return false;
if (theDownloader.resultCode() != 200)
return false;
QByteArray Ar(theDownloader.content());
bool OK = importGPX(Main, Ar, theDocument, theTracklayers, true);
if (Main)
Main->view()->setUpdatesEnabled(true);
if (OK) {
if (Main)
Main->invalidateView();
}
return OK;
}
示例8: downloadMapdust
bool downloadMapdust(MainWindow* Main, const CoordBox& aBox, Document* theDocument, SpecialLayer* theLayer)
{
QUrl url;
url.setUrl(M_PREFS->getMapdustUrl());
if (Main)
Main->view()->setUpdatesEnabled(false);
Downloader theDownloader("", "");
SpecialLayer* trackLayer = theLayer;
if (!trackLayer) {
trackLayer = new SpecialLayer(QApplication::translate("Downloader","MapDust"), Layer::MapDustLayer);
trackLayer->setUploadable(false);
theDocument->add(trackLayer);
}
IProgressWindow* aProgressWindow = dynamic_cast<IProgressWindow*>(Main);
if (!aProgressWindow)
return false;
QProgressDialog* dlg = aProgressWindow->getProgressDialog();
dlg->setWindowTitle(QApplication::translate("Downloader","Parsing..."));
QProgressBar* Bar = aProgressWindow->getProgressBar();
Bar->setTextVisible(false);
Bar->setMaximum(11);
QLabel* Lbl = aProgressWindow->getProgressLabel();
Lbl->setText(QApplication::translate("Downloader","Parsing XML"));
if (dlg)
dlg->show();
theDownloader.setAnimator(dlg,Lbl,Bar,true);
Lbl->setText(QApplication::translate("Downloader","Downloading points"));
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
QUrlQuery theQuery(url);
#define theQuery theQuery
#else
#define theQuery url
#endif
theQuery.addQueryItem("t", COORD2STRING(aBox.topRight().y()));
theQuery.addQueryItem("l", COORD2STRING(aBox.bottomLeft().x()));
theQuery.addQueryItem("b", COORD2STRING(aBox.bottomLeft().y()));
theQuery.addQueryItem("r", COORD2STRING(aBox.topRight().x()));
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
url.setQuery(theQuery);
#endif
#undef theQuery
if (!theDownloader.go(url))
return false;
if (theDownloader.resultCode() != 200)
return false;
QByteArray Ar(theDownloader.content());
ImportExportGdal gdal(theDocument);
bool OK = gdal.import(trackLayer, Ar, false);
if (Main)
Main->view()->setUpdatesEnabled(true);
if (OK) {
if (Main)
Main->invalidateView();
}
return OK;
}