Как извлечь lat / long из файла формы программно?

Я успешно создал приложение, используя Qt а также shapelib библиотека для открытия и отображения файлы форм.

Но теперь я хочу получить широта а также долгота каждой точки под курсором мыши.

Я не знаю, как преобразовать точку в пикселе, что-то вроде (x, y) в широта / лог координаты.

Должен ли я использовать .DBF файл?

Любая ссылка будет оценена. Благодарю.

1

Решение

Я рекомендую использовать QGIS. Если вы используете QGIS, вы можете иметь QGsMapCanvas который имеет сигнал с именем xyCoordinates(QgsPoint) и испускается, когда мышь перемещается на карте. QgsPoint может быть преобразован в широту / долготу с помощью функции с именем toString или в другие единицы, такие как градус / минуты / секунды, используя toDegreesMinutesSeconds :

connect(map,SIGNAL(xyCoordinates(QgsPoint)),this,SLOT(showMouseCoordinate(QgsPoint)));

void GIS::showMouseCoordinate(const QgsPoint &p)
{

if ( map->mapUnits() == QGis::DegreesMinutesSeconds )
{
ui->coordinateLbl->setText( p.toDegreesMinutesSeconds( 3 ) );
}
else
{
ui->coordinateLbl->setText( p.toString( 3 ) );
}
}
1

Другие решения


По вопросам рекламы [email protected]