diff options
author | 2019-06-06 16:31:25 +0900 | |
---|---|---|
committer | 2019-06-06 16:31:25 +0900 | |
commit | 9ee98a06160ee2b234e92db70eb18e128fc76e5d (patch) | |
tree | d144be711339162d8fb8662ac868cc3677318072 /app/qml | |
parent | 61a91b68c0c895714ea8d612fc752ad4b5cf56ef (diff) |
add hubtbtsandbox/zheng_wenlong/hubtbt
Diffstat (limited to 'app/qml')
-rw-r--r-- | app/qml/Main.qml | 188 | ||||
-rw-r--r-- | app/qml/MapWindow.qml | 356 | ||||
-rw-r--r-- | app/qml/TbtBoard.qml | 187 | ||||
-rw-r--r-- | app/qml/qmldir | 2 |
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 |