blob: e5d870407f12471b3c8093cf0e2acc6a422d3ac5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
// Copyright (C) 2019 Julian Sherollari <jdotsh@gmail.com>
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Dialogs
import QtQuick.Controls
import QtPositioning
import QtLocation
import QtCore
import Qt.GeoJson
ApplicationWindow {
id: win
visible: true
width: 1024
height: 1024
menuBar: mainMenu
title: qsTr("GeoJSON Viewer: ") + view.map.center +
" zoom " + view.map.zoomLevel.toFixed(3)
+ " min " + view.map.minimumZoomLevel +
" max " + view.map.maximumZoomLevel
FileDialog {
visible: false
id: fileDialog
title: "Choose a GeoJSON file"
fileMode: FileDialog.OpenFile
currentFolder: dataPath
nameFilters: ["GeoJSON files (*.geojson *.json)"]
onAccepted: {
geoJsoner.load(fileDialog.selectedFile)
}
}
FileDialog {
visible: false
id: fileWriteDialog
title: "Write your geometry to a file"
fileMode: FileDialog.SaveFile
currentFolder: StandardPaths.writableLocation(StandardPaths.TempLocation)
nameFilters: ["GeoJSON files (*.geojson *.json)"]
onAccepted: {
geoJsoner.dumpGeoJSON(geoJsoner.toGeoJson(miv), fileWriteDialog.selectedFile);
}
}
FileDialog {
visible: false
id: debugWriteDialog
title: "Write Qvariant debug view"
fileMode: FileDialog.SaveFile
currentFolder: StandardPaths.writableLocation(StandardPaths.TempLocation)
nameFilters: ["GeoJSON files (*.geojson *.json)"]
onAccepted: {
geoJsoner.writeDebug(geoJsoner.toGeoJson(miv), debugWriteDialog.selectedFile);
}
}
MenuBar {
id: mainMenu
Menu {
title: "&File"
id : geoJsonMenu
MenuItem {
text: "&Open"
onTriggered: {
fileDialog.open()
}
}
MenuItem {
text: "&Export"
onTriggered: {
fileWriteDialog.open()
}
}
MenuItem {
text: "E&xit"
onTriggered: Qt.quit()
}
}
Menu {
title: "&Debug"
id : debugMenu
MenuItem {
text: "Print debug data to &file"
onTriggered: {
debugWriteDialog.open()
}
}
MenuItem {
text: "&Print debug data"
onTriggered: {
geoJsoner.print(miv)
}
}
}
}
GeoJsoner {
id: geoJsoner
}
Shortcut {
enabled: view.map.zoomLevel < view.map.maximumZoomLevel
sequence: StandardKey.ZoomIn
onActivated: view.map.zoomLevel = Math.round(view.map.zoomLevel + 1)
}
Shortcut {
enabled: view.map.zoomLevel > view.map.minimumZoomLevel
sequence: StandardKey.ZoomOut
onActivated: view.map.zoomLevel = Math.round(view.map.zoomLevel - 1)
}
MapView {
id: view
anchors.fill: parent
map.center: QtPositioning.coordinate(43.59, 13.50) // Ancona, Italy
map.plugin: Plugin { name: "osm" }
map.zoomLevel: 4
MapItemView {
id: miv
parent: view.map
model: geoJsoner.model
delegate: GeoJsonDelegate {
}
}
}
}
|