summaryrefslogtreecommitdiffstats
path: root/app/qml
diff options
context:
space:
mode:
Diffstat (limited to 'app/qml')
-rw-r--r--app/qml/Main.qml188
-rw-r--r--app/qml/MapWindow.qml356
-rw-r--r--app/qml/TbtBoard.qml187
-rw-r--r--app/qml/qmldir2
4 files changed, 0 insertions, 733 deletions
diff --git a/app/qml/Main.qml b/app/qml/Main.qml
deleted file mode 100644
index 7b99ca5..0000000
--- a/app/qml/Main.qml
+++ /dev/null
@@ -1,188 +0,0 @@
-import QtQuick 2.0
-import QtQuick.Controls 2.2
-import QtWebSockets 1.0
-import QtPositioning 5.0
-
-import "qrc:/qml"
-
-ApplicationWindow {
- id: window
-
- title: "Turn By Turn Navigation Demo"
- height: 720
- width: 640
- visible: true
-
- property string tbt_navi_request_str: ""
- property string api_str: "naviapi"
- property string verb_getrouteinfo: "navicore_getrouteinfo"
- property string verb_getallsessions: "navicore_getallsessions"
- property string verb_subscribe: "subscribe"
- property string verb_unsubscribe: "unsubscribe"
- property string event_setdemorouteinfo: "naviapi/navicore_setdemorouteinfo"
- property string event_arrivedest: "naviapi/navicore_arrivedest"
- property string event_stopdemo: "naviapi/navicore_stopdemo"
- property string event_setdestpos: "naviapi/navicore_setdestpos"
- property string event_gps: "naviapi/navicore_gps"
- property string event_getdestdir: "naviapi/navicore_getdestdir"
- property var msgid_enu: { "call":2, "retok":3, "reterr":4, "event":5 }
-
- WebSocket {
- id: websocket
- url: bindingAddress
-
- onStatusChanged: {
- if (websocket.status === WebSocket.Error){
- console.log ("Error: " + websocket.errorString)
- websocket.active = false
- countdown.start()
- }else if (websocket.status === WebSocket.Open){
- console.log ("Socket Open")
- do_getallsessions()
- }else if (websocket.status === WebSocket.Closed){
- console.log ("Socket closed")
- }
- }
-
- onTextMessageReceived: {
- //console.log("tbtnavi:onTextMessageReceived: " + message)
- var message_json = JSON.parse(message)
-
- //analyse the infomation from the naviapi service
- if (message_json[0] === msgid_enu.event)
- {
- //set route infomation during the route demo
- if(message_json[2].event === event_setdemorouteinfo)
- {
- var latitude = message_json[2].data[0].DemoLatitude
- var longitude = message_json[2].data[0].DemoLongitude
- var distance = message_json[2].data[0].DemoDistance
- var direction = message_json[2].data[0].DemoDirection
- //console.log("tbtnavi: distance = " + distance + "direction = " + direction)
- mapwindow.do_setDirection(direction)
- mapwindow.do_setNextCrossDistance(distance)
- }
- //when arrive the destination
- else if(message_json[2].event === event_arrivedest)
- {
- mapwindow.do_arrivedest()
- }
- //when the demo stopped
- else if(message_json[2].event === event_stopdemo)
- {
- mapwindow.do_stopnavidemo()
- mapwindow.do_setCoordinate(35.6673965582,139.7491882778)
- mapwindow.startPoint = QtPositioning.coordinate(35.6673965582,139.7491882778);
- }
- //when add destination
- else if(message_json[2].event === event_setdestpos)
- {
- var allroutes = message_json[2].data[0].AllRoutes
- var destlat = message_json[2].data[0].DestinationLatitude
- var destlon = message_json[2].data[0].DestinationLongitude
- mapwindow.do_setdest(allroutes,destlat,destlon)
- }
- else if(message_json[2].event === event_gps){
- //console.log ("tbt:Receive Event======event_gps")
- var lat = message_json[2].data.latitude
- var lon = message_json[2].data.longitude
- //console.log ("tbt:Receive Event lat====== " + lat+" "+"lon======"+lon)
- mapwindow.do_setCoordinate(lat,lon)
-
- }
- else if(message_json[2].event === event_getdestdir){
- var state = message_json[2].data.state
- mapwindow.do_setTbtState(state)
- }
- }
- else if (message_json[0] === msgid_enu.retok)
- {
- //when connect successed request the route infomation
- if(message_json[2].request.info === verb_getallsessions)
- {
- do_getrouteinfo()
- }
- //add destination
- else if(message_json[2].request.info === verb_getrouteinfo)
- {
- var routes = message_json[2].response[0].AllRoutes
- var currentlat = message_json[2].response[0].CurrentLatitude
- var currentlon = message_json[2].response[0].CurrentLongitude
- var destposlat = message_json[2].response[0].DestinationLatitude
- var destposlon = message_json[2].response[0].DestinationLongitude
- mapwindow.do_addRoutePoint(currentlat,currentlon,destposlat,destposlon,routes)
- }
- }
- else{
- console.log("Raw response: " + message)
- }
- }
- active: false
- }
-
- Timer {
- id: countdown
- repeat: false
- interval: 3000
- triggeredOnStart: false
- onTriggered: {
- websocket.active = true
- }
- }
-
- onVisibleChanged: {
- if (visible){
- if (!websocket.active){
- websocket.active = true
- }
- }
- else {
- countdown.stop()
- if (websocket.active){
- do_unsubscribe("setdemopos")
- do_unsubscribe("stopdemo")
- do_unsubscribe("arrivedest")
- }
- }
- }
-
- //make a connect to the naviapi service
- function do_getallsessions() {
- tbt_navi_request_str = '[' + msgid_enu.call + ',"99999","' + api_str+'/'+verb_getallsessions + '", {} ]'
- console.log (tbt_navi_request_str)
- websocket.sendTextMessage (tbt_navi_request_str)
- }
-
- //get route information
- function do_getrouteinfo() {
- tbt_navi_request_str = '[' + msgid_enu.call + ',"99999","' + api_str+'/'+verb_getrouteinfo+ '", {}]'
- console.log (tbt_navi_request_str)
- websocket.sendTextMessage (tbt_navi_request_str)
- }
-
- //subscribe
- function do_subscribe( event ) {
- tbt_navi_request_str = '[' + msgid_enu.call + ',"99999","' + api_str+'/'+verb_subscribe + '", {"value":"' + event + '"} ]'
- console.log (tbt_navi_request_str)
- websocket.sendTextMessage (tbt_navi_request_str)
- }
-
- //unsubscribe
- function do_unsubscribe( event ) {
- tbt_navi_request_str = '[' + msgid_enu.call + ',"99999","' + api_str+'/'+verb_unsubscribe + '", {"value":"' + event + '"} ]'
- console.log (tbt_navi_request_str)
- websocket.sendTextMessage (tbt_navi_request_str)
- }
-
- Item {
- anchors.centerIn: parent
- width: parent.width
- height: parent.height
-
- MapWindow {
- id:mapwindow
- anchors.fill: parent
- objectName: "mapwindow"
- }
- }
-}
diff --git a/app/qml/MapWindow.qml b/app/qml/MapWindow.qml
deleted file mode 100644
index efb4bcf..0000000
--- a/app/qml/MapWindow.qml
+++ /dev/null
@@ -1,356 +0,0 @@
-import QtLocation 5.9
-import QtPositioning 5.0
-import QtQuick 2.0
-
-import com.mapbox.cheap_ruler 1.0
-
-Item {
- id: mapWindow
-
- property int disOffset: fileOperation.getCarSpeed() // set Km/h
- property real rotateAngle: 0
- property var startPoint
- property var endPoint
-
- //turn by turn board view
- TbtBoard {
- id: tbt_board
- z: 1
- visible: false
- anchors.fill: parent
- }
-
- //mapview and route views
- Map {
- id: map
- anchors.fill: parent
-
- plugin: Plugin {
- name: "mapboxgl"
-
- PluginParameter {
- name: "mapboxgl.mapping.additional_style_urls"
- value: fileOperation.getMapStyleUrls()
- }
-
- PluginParameter {
- name: "mapboxgl.access_token"
- value: fileOperation.getMapAccessToken()
- }
- }
-
- center: ruler.currentPosition
- zoomLevel: 18
- tilt: 60
- gesture.acceptedGestures:MapGestureArea.NoGesture
- copyrightsVisible: false
-
- RotationAnimation on bearing {
- id: bearingAnimation
-
- duration: 250
- alwaysRunToEnd: false
- direction: RotationAnimation.Shortest
- running: true
- }
-
- Location {
- id: previousLocation
- coordinate: QtPositioning.coordinate(0, 0);
- }
-
- onCenterChanged: {
- if (previousLocation.coordinate === center)
- return;
-
- bearingAnimation.to = previousLocation.coordinate.azimuthTo(center);
- bearingAnimation.start();
-
- previousLocation.coordinate = center;
- }
-
- MapQuickItem {
- id: startMarker
-
- sourceItem: Image {
- id: greenMarker
- source: "qrc:///marker-green.png"
- }
- anchorPoint.x: greenMarker.width / 2
- anchorPoint.y: greenMarker.height / 2
- }
-
- MapQuickItem {
- id: endMarker
-
- sourceItem: Image {
- id: redMarker
- source: "qrc:///marker-end.png"
- }
- anchorPoint.x: redMarker.width / 2
- anchorPoint.y: redMarker.height / 2
- }
-
- MapItemView {
- model: routeModel
-
- delegate: MapRoute {
- route: routeData
- line.color: "#6b43a1"
- line.width: map.zoomLevel - 5
- opacity: (index == 0) ? 1.0 : 0.3
-
- onRouteChanged: {
- ruler.path = routeData.path;
- }
- }
- }
-
- MapQuickItem {
- zoomLevel: map.zoomLevel
-
- sourceItem: Image {
- id: carMarker
- source: "qrc:///car-marker.png"
- transform: Rotation {
- origin.x: carMarker.width / 2;
- origin.y: carMarker.height / 2;
- angle: rotateAngle
- }
- }
-
- coordinate: ruler.currentPosition
- anchorPoint.x: carMarker.width / 2
- anchorPoint.y: carMarker.height / 2
-
- Location {
- id: previousCarLocation
- coordinate: QtPositioning.coordinate(0, 0);
- }
-
- onCoordinateChanged: {
- if(coordinate === mapWindow.startPoint)
- return;
- rotateAngle = previousCarLocation.coordinate.azimuthTo(coordinate);
- previousCarLocation.coordinate = coordinate;
- }
- }
-
- //add route view in the map
- function updateRoute() {
- routeQuery.clearWaypoints();
- routeQuery.addWaypoint(startMarker.coordinate);
- routeQuery.addWaypoint(endMarker.coordinate);
- map.addMapItem(startMarker)
- map.addMapItem(endMarker)
- }
-
- //clear route view in the map
- function clearRoute() {
- routeQuery.clearWaypoints();
- routeModel.reset();
- map.removeMapItem(startMarker)
- map.removeMapItem(endMarker)
- }
-
- CheapRuler {
- id: ruler
-
- /* onCurrentDistanceChanged: {
- var total = 0;
- var i = 0;
- var alldistance = ruler.distance * 1000;
-
- if((routeModel.status === RouteModel.Ready)
- && (routeModel.count === 1))
- {
- // XXX: Use car speed in meters to pre-warn the turn instruction
- while (total < ruler.currentDistance && i < routeModel.get(0).segments.length)
- {
- total += routeModel.get(0).segments[i++].maneuver.distanceToNextInstruction;
- }
-
- //show the tbt board(it will be always show when demo start)
-// tbt_board.visible = true
-
- // Set turn instruction
- tbt_board.do_setTurnInstructions(routeModel.get(0).segments[i].maneuver.instructionText)
-// tbt_board.state = routeModel.get(0).segments[i].maneuver.direction
-
- //when goto the last instruction,set the states to "arriveDest"
- if(i >= (routeModel.get(0).segments.length-1))
- {
- total = alldistance;
-// tbt_board.state = "arriveDest";
- }
-
- var dis = (total - ruler.currentDistance).toFixed(1);
- //console.log("tbtnavi:dis = " + dis)
-
- // Set distance
- tbt_board.do_setDistance(dis)
-
- // Set board status
- if(dis < mapWindow.disOffset && i < routeModel.get(0).segments.length)
- {
- //show the tbt board(the big one)
- tbt_board.do_showTbtboard(true)
- }
- else
- {
- //disvisible the tbt board(the big one)
- tbt_board.do_showTbtboard(false)
- }
- }
- }*/ //deleted
- }
- }
-
- //the route view display by RouteModel
- RouteModel {
- id: routeModel
-
- autoUpdate: true
- query: routeQuery
-
- plugin: Plugin {
- name: "mapbox"
-
- // Development access token, do not use in production.
- PluginParameter {
- name: "mapbox.access_token"
- value: fileOperation.getMapAccessToken()
- }
- }
- }
-
- RouteQuery {
- id: routeQuery
- }
-
- Component.onCompleted: {
- //request the route info when map load finish
- console.log("Component.onCompleted")
- }
-
- //the functions can be called by outside
- //add route signal function
- function do_addRoutePoint(poi_Lat_s, poi_Lon_s, poi_Lat_e, poi_Lon_e,routes) {
-
- var latitude = ""
- var longitute = ""
- //when current point is null
- if((poi_Lat_s === "")
- &&(poi_Lon_s === ""))
- {
- latitude = fileOperation.getStartLatitude()
- longitute = fileOperation.getStartLongitute()
- }
- else
- {
- latitude = poi_Lat_s
- longitute = poi_Lon_s
- }
-
- startPoint= QtPositioning.coordinate( latitude,longitute);
- startMarker.coordinate = startPoint;
-
- if (ruler) {
- console.log ("latitude:"+latitude+" longitute:"+longitute)
- ruler.setCurrentCoordinate(latitude,longitute);
- if((routes !== 0)
- &&(poi_Lat_e !== "")
- &&(poi_Lon_e !== ""))
- {
- endPoint = QtPositioning.coordinate(poi_Lat_e,poi_Lon_e);
- endMarker.coordinate = endPoint;
- //update the route view
- if (map) {
- map.updateRoute();
- }
- }
- window.do_subscribe("gps")
- window.do_subscribe("getdestdir")
- window.do_subscribe("adddest")
- window.do_subscribe("setdemopos")
- window.do_subscribe("stopdemo")
- window.do_subscribe("arrivedest")
- }
- }
-
- //set the current position
- function do_setCoordinate(latitude,longitude) {
- ruler.setCurrentCoordinate(latitude, longitude);
- }
-
- function do_setDistance(distance) {
- ruler.setCurrentDistance(distance);
- }
-
- function do_setNextCrossDistance(distance) {
- var dis = distance;
- //console.log("tbtnavi:dis = " + dis)
-
- // Set distance
- tbt_board.do_setDistance(dis)
-
- // Set board status
- if((dis < mapWindow.disOffset) && (dis > 2))
- {
- //show the tbt board(the big one)
- tbt_board.do_showTbtboard(false)
- }
- else
- {
- //disvisible the tbt board(the big one)
- tbt_board.do_showTbtboard(false)
- }
- }
-
- function do_setDirection(direction) {
-// ruler.setCurrentDistance(direction);
- }
-
- function do_setTbtState(tbtstate) {
- //show the tbt board(it will be always show when demo start)
- tbt_board.visible = true;
- tbt_board.state = tbtstate;
- }
-
- //stop navidemo signal
- function do_stopnavidemo() {
- //disvisible the tbt board
- tbt_board.visible = false
- //clear the routeview
- if (map) {
- map.clearRoute();
- }
- }
-
- //arrvice the destination signal
- function do_arrivedest(){
- //disvisible the tbt board
- tbt_board.visible = false
- }
-
- //set the current position
- function do_setdest(allroutes,latitude,longitude) {
- if((allroutes !== 0)
- &&(latitude !== "")
- &&(longitude !== ""))
- {
- endPoint = QtPositioning.coordinate(latitude,longitude);
- endMarker.coordinate = endPoint;
-
- if (ruler) {
- if(allroutes !== 0)
- {
- //update the route view
- if (map) {
- map.updateRoute();
- }
- }
- }
- }
- }
-}
diff --git a/app/qml/TbtBoard.qml b/app/qml/TbtBoard.qml
deleted file mode 100644
index 738530d..0000000
--- a/app/qml/TbtBoard.qml
+++ /dev/null
@@ -1,187 +0,0 @@
-import QtQuick 2.0
-
-//turn by turn board view
-Item {
- id: tbt_board
-
- property bool showboard: false
-
- // the backgroud image(the small one)
- Image {
- id: whitebackgroud
- visible: !showboard
- anchors.top: parent.top
- width:turnDirection.width
- height:turnDirection.height + distance.height
- source: "qrc:simple-background-white.png"
- z: 1
- }
-
- // turn direction arrow board image(the small one)
- Image {
- id: turnDirection
- visible: !showboard
- anchors.top: parent.top
- z: 3
- }
-
- // the distance to the next crossing road(textview)(the small one)
- Text {
- id: distance
- visible: !showboard
- anchors.top: turnDirection.bottom
- z: 3
- font.pixelSize: 23
- width:turnDirection.width
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.family: "Lato"
- font.weight: Font.Light
- color: "#000000"
- }
-
- // the backgroud image
- Image {
- id: backgroudBoard
- visible: showboard
- anchors.fill: parent
- source: "qrc:simple-bottom-background-black.png"
- z: 1
- }
-
- // turn direction arrow board image
- Image {
- id: turnDirectionBoard
- visible: showboard
- width : parent.height - turnInstructionsBoard.height - distanceBoard.height
- height: parent.height - turnInstructionsBoard.height - distanceBoard.height
- anchors.centerIn: parent
- z: 3
- }
-
- // the distance to the next crossing road(textview)
- Text {
- id: distanceBoard
- visible: showboard
- anchors.bottom: turnInstructionsBoard.top
- z: 3
- font.pixelSize: 45
- width:tbt_board.width
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.family: "Lato"
- font.weight: Font.Light
- color: "#FFFFFF"
- }
-
- // the description of the next crossing road(textview)
- Text {
- id: turnInstructionsBoard
- visible: showboard
- anchors.bottom: parent.bottom
- z: 3
- font.pixelSize: 30
- width:tbt_board.width
- wrapMode: Text.Wrap
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.family: "Lato"
- font.weight: Font.Light
- color: "#FFFFFF"
- }
-
- // the cases of direction arrow board
- states: [
- State {
- name: "12" //arrive the destination
- PropertyChanges { target: turnDirectionBoard; source: "qrc:destination_full.png" }
- PropertyChanges { target: turnDirection; source: "qrc:destination.png" }
- },
- State {
- name: "0" // NoDirection
- PropertyChanges { target: turnDirectionBoard; source: "" }
- PropertyChanges { target: turnDirection; source: "" }
- },
- State {
- name: "1" // DirectionForward
- PropertyChanges { target: turnDirectionBoard; source: "" }
- PropertyChanges { target: turnDirection; source: "" }
- },
- State {
- name: "2" // DirectionBearRight
- PropertyChanges { target: turnDirectionBoard; source: "" }
- PropertyChanges { target: turnDirection; source: "" }
- },
- State {
- name: "3" // DirectionLightRight
- PropertyChanges { target: turnDirectionBoard; source: "qrc:arrow-r-30-full.png" }
- PropertyChanges { target: turnDirection; source: "qrc:arrow-r-30-large.png" }
- },
- State {
- name: "4" // DirectionRight
- PropertyChanges { target: turnDirectionBoard; source: "qrc:arrow-r-45-full.png" }
- PropertyChanges { target: turnDirection; source: "qrc:arrow-r-45-large.png" }
- },
- State {
- name: "5" // DirectionHardRight
- PropertyChanges { target: turnDirectionBoard; source: "qrc:arrow-r-75-full.png" }
- PropertyChanges { target: turnDirection; source: "qrc:arrow-r-75-large.png" }
- },
- State {
- name: "6" // DirectionUTurnRight
- //TODO modify qtlocation U-Turn best.For test, change app source.
- PropertyChanges { target: turnDirectionBoard; source: "qrc:arrow-l-180-full.png" }
- PropertyChanges { target: turnDirection; source: "qrc:arrow-l-180-large.png" }
- },
- State {
- name: "7" // DirectionUTurnLeft
- //TODO modify qtlocation U-Turn best.For test, change app source.
- PropertyChanges { target: turnDirectionBoard; source: "qrc:arrow-r-180-full.png" }
- PropertyChanges { target: turnDirection; source: "qrc:arrow-r-180-large.png" }
- },
- State {
- name: "8" // DirectionHardLeft
- PropertyChanges { target: turnDirectionBoard; source: "qrc:arrow-l-75-full.png" }
- PropertyChanges { target: turnDirection; source: "qrc:arrow-l-75-large.png" }
- },
- State {
- name: "9" // DirectionLeft
- PropertyChanges { target: turnDirectionBoard; source: "qrc:arrow-l-45-full.png" }
- PropertyChanges { target: turnDirection; source: "qrc:arrow-l-45-large.png" }
- },
- State {
- name: "10" // DirectionLightLeft
- PropertyChanges { target: turnDirectionBoard; source: "qrc:arrow-l-30-full.png" }
- PropertyChanges { target: turnDirection; source: "qrc:arrow-l-30-large.png" }
- },
- State {
- name: "11" // DirectionBearLeft
- PropertyChanges { target: turnDirectionBoard; source: "" }
- PropertyChanges { target: turnDirection; source: "" }
- }
- ]
-
- // Set distance
- function do_setDistance(dis) {
- if(dis > 1000)
- {
- distanceBoard.text = (dis / 1000).toFixed(1) + " km"
- }
- else
- {
- distanceBoard.text = dis + " m"
- }
-
- distance.text = (((dis/100).toFixed(0))*100) +"m"
- }
-
- //set turnInstructions
- function do_setTurnInstructions(turnInstructions) {
- turnInstructionsBoard.text = turnInstructions
- }
-
- //show the tbt board(the big one)
- function do_showTbtboard(mvisible) {
- showboard = mvisible
- }
-}
diff --git a/app/qml/qmldir b/app/qml/qmldir
deleted file mode 100644
index 7bbd751..0000000
--- a/app/qml/qmldir
+++ /dev/null
@@ -1,2 +0,0 @@
-MapWindow 1.0 MapWindow.qml
-TbtBoard 1.0 TbtBoard.qml