add Map inverse geocoding
add minimum/maximum to ScrollSpinBox
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "pivariant_geoposition.h"
|
||||
|
||||
#include "mapitemimage.h"
|
||||
#include "osm_geocoding.h"
|
||||
#include "piqt.h"
|
||||
#include "pivaluetree.h"
|
||||
#include "ui_pivariant_geoposition.h"
|
||||
@@ -31,7 +32,18 @@ PIVariantEditors::GeoPosition::GeoPosition() {
|
||||
item->setScale(0.333 * appScale(this));
|
||||
item->setPosition(ui.map->center());
|
||||
ui.map->addItem(item);
|
||||
connect(ui.map, &MapView::mapClicked, this, [item](QPointF c) { item->setPosition(c); });
|
||||
OSMGeocodingResult * gc_res = nullptr;
|
||||
connect(ui.map, &MapView::mapClicked, this, [this, item, &gc_res, ui](QPointF c) {
|
||||
item->setPosition(c);
|
||||
if (gc_res) gc_res->abort();
|
||||
gc_res = OSMGeocoding::queue(c);
|
||||
ui.label->setText("-");
|
||||
connect(gc_res, &OSMGeocodingResult::ready, this, [&gc_res, ui]() {
|
||||
ui.label->setText(gc_res->displayName());
|
||||
gc_res = nullptr;
|
||||
});
|
||||
});
|
||||
ui.map->mapClicked(ui.map->center());
|
||||
if (dlg.exec() != QDialog::Accepted) return;
|
||||
PIGeoPosition gp({item->position().x(), item->position().y(), 0.}, PIGeoPosition::Geodetic);
|
||||
setValue(PIVariant::fromValue(gp));
|
||||
|
||||
Reference in New Issue
Block a user