提交 5e0e6e4c 编写于 作者: K kiboliu 提交者: Xiangquan Xiao

Dreamview: adjust camera param

上级 f9085898
......@@ -93,7 +93,13 @@ void PerceptionCameraUpdater::GetImageLocalization(
if (tmp_diff < 0) {
timestamp_diff = tmp_diff;
image_pos = localization_queue_.front()->pose();
localization_queue_.pop_front();
if (localization_queue_.size() > 1) {
localization_queue_.pop_front();
} else {
// At least keep one pose in queue, in case there's no localization
// coming between two requests.
break;
}
} else {
if (tmp_diff < std::fabs(timestamp_diff)) {
image_pos = localization_queue_.front()->pose();
......
......@@ -12,7 +12,7 @@
// Require a semi colon at the end of a statement.
"semi": ["error", "always"],
// Maximum line length is 100.
"max-len": ["error", 100],
"max-len": ["error", 100, { "ignoreStrings": true }],
// Always require curly brackets.
"curly": "error",
......
(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{465:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=p(a(4)),i=p(a(1)),l=p(a(2)),o=p(a(5)),r=p(a(6)),d=p(a(0)),u=p(a(466)),c=p(a(102)),f=p(a(18)),s=p(a(467));function p(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(e){(0,i.default)(this,t);var a=(0,o.default)(this,(t.__proto__||(0,n.default)(t)).call(this,e));return a.state={routingView:!1},a.onClickHandler=a.onClickHandler.bind(a),a.scriptOnLoadHandler=a.scriptOnLoadHandler.bind(a),a}return(0,r.default)(t,e),(0,l.default)(t,[{key:"onClickHandler",value:function(){var e=!this.state.routingView;e?c.default.enableControls():c.default.disableControls(),this.setState({routingView:e})}},{key:"componentDidMount",value:function(){c.default.mapAPILoaded&&this.scriptOnLoadHandler()}},{key:"scriptOnLoadHandler",value:function(){a(468)("./"+PARAMETERS.navigation.map+"Adapter").then((function(e){var t=new(0,e.default);c.default.mapAPILoaded=!0,c.default.initialize(f.default,t),c.default.disableControls()}))}},{key:"componentWillUnmount",value:function(){c.default.reset()}},{key:"render",value:function(){var e=this.props,t=e.viewHeight,a=e.viewWidth;if("GoogleMap"!==PARAMETERS.navigation.map&&"BaiduMap"!==PARAMETERS.navigation.map)return console.error("Map API "+PARAMETERS.navigation.map+" is not supported."),null;if(!c.default.mapAPILoaded){var n=function(){console.log("Map API script loaded.")};"BaiduMap"===PARAMETERS.navigation.map?window.initMap=this.scriptOnLoadHandler:"GoogleMap"===PARAMETERS.navigation.map&&(n=this.scriptOnLoadHandler),(0,s.default)({url:PARAMETERS.navigation.mapAPiUrl,onLoad:n,onError:function(){console.log("Failed to load map api")}})}var i=0,l=0,o=a,r=t,f="maximizing";return this.state.routingView||(i=10,l=20,o=Math.min(.3*a,250),r=Math.min(.5*t,300),f="minimizing"),d.default.createElement("div",{displayname:"navigation",className:"navigation-view",style:{width:o,height:r,top:i,left:l}},d.default.createElement("div",{id:"map_canvas"}),d.default.createElement(u.default,{type:f,onClick:this.onClickHandler}))}}]),t}(d.default.Component);t.default=m},466:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=u(a(4)),i=u(a(1)),l=u(a(2)),o=u(a(5)),r=u(a(6)),d=u(a(0));function u(e){return e&&e.__esModule?e:{default:e}}var c=function(e){function t(){return(0,i.default)(this,t),(0,o.default)(this,(t.__proto__||(0,n.default)(t)).apply(this,arguments))}return(0,r.default)(t,e),(0,l.default)(t,[{key:"getMaximizingIcon",value:function(){return d.default.createElement("svg",{viewBox:"0 0 20 20"},d.default.createElement("defs",null,d.default.createElement("path",{d:"M20 0L0 20h20V0z",id:"a"}),d.default.createElement("path",{d:"M11.53 18.5l-.03-7h7",id:"b"}),d.default.createElement("path",{d:"M12 12l7 7",id:"c"})),d.default.createElement("use",{xlinkHref:"#a",opacity:".6",fill:"#549BFF"}),d.default.createElement("use",{xlinkHref:"#b",fillOpacity:"0",stroke:"#006AFF",strokeWidth:"2"}),d.default.createElement("use",{xlinkHref:"#c",fillOpacity:"0",stroke:"#006AFF",strokeWidth:"2"}))}},{key:"getMinimizingIcon",value:function(){return d.default.createElement("svg",{viewBox:"0 0 20 20"},d.default.createElement("defs",null,d.default.createElement("path",{d:"M20 0L0 20h20V0z",id:"a"}),d.default.createElement("path",{d:"M18.47 11.5l.03 7h-7",id:"b"}),d.default.createElement("path",{d:"M11 11l7 7",id:"c"})),d.default.createElement("use",{xlinkHref:"#a",opacity:".6",fill:"#549BFF"}),d.default.createElement("use",{xlinkHref:"#b",fillOpacity:"0",stroke:"#006AFF",strokeWidth:"2"}),d.default.createElement("use",{xlinkHref:"#c",fillOpacity:"0",stroke:"#006AFF",strokeWidth:"2"}))}},{key:"render",value:function(){var e=this.props,t=e.type,a=e.onClick,n=null;switch(t){case"minimizing":n=this.getMinimizingIcon();break;case"maximizing":n=this.getMaximizingIcon()}return d.default.createElement("div",{className:"window-resize-control",onClick:a},n)}}]),t}(d.default.PureComponent);t.default=c},467:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.url,a=e.onLoad,n=e.onError,i=document.createElement("script");i.src=t,i.type="text/javascript",i.async=!0,i.onload=a,i.onerror=n,document.body.appendChild(i)}},468:function(e,t,a){var n={"./BaiduMapAdapter":[469,3],"./GoogleMapAdapter":[470,4]};function i(e){if(!a.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],i=t[0];return a.e(t[1]).then((function(){return a.t(i,7)}))}i.keys=function(){return Object.keys(n)},i.id=468,e.exports=i}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{469:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=p(a(4)),i=p(a(1)),l=p(a(2)),o=p(a(5)),r=p(a(6)),d=p(a(0)),u=p(a(470)),c=p(a(102)),f=p(a(18)),s=p(a(471));function p(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(e){(0,i.default)(this,t);var a=(0,o.default)(this,(t.__proto__||(0,n.default)(t)).call(this,e));return a.state={routingView:!1},a.onClickHandler=a.onClickHandler.bind(a),a.scriptOnLoadHandler=a.scriptOnLoadHandler.bind(a),a}return(0,r.default)(t,e),(0,l.default)(t,[{key:"onClickHandler",value:function(){var e=!this.state.routingView;e?c.default.enableControls():c.default.disableControls(),this.setState({routingView:e})}},{key:"componentDidMount",value:function(){c.default.mapAPILoaded&&this.scriptOnLoadHandler()}},{key:"scriptOnLoadHandler",value:function(){a(472)("./"+PARAMETERS.navigation.map+"Adapter").then((function(e){var t=new(0,e.default);c.default.mapAPILoaded=!0,c.default.initialize(f.default,t),c.default.disableControls()}))}},{key:"componentWillUnmount",value:function(){c.default.reset()}},{key:"render",value:function(){var e=this.props,t=e.viewHeight,a=e.viewWidth;if("GoogleMap"!==PARAMETERS.navigation.map&&"BaiduMap"!==PARAMETERS.navigation.map)return console.error("Map API "+PARAMETERS.navigation.map+" is not supported."),null;if(!c.default.mapAPILoaded){var n=function(){console.log("Map API script loaded.")};"BaiduMap"===PARAMETERS.navigation.map?window.initMap=this.scriptOnLoadHandler:"GoogleMap"===PARAMETERS.navigation.map&&(n=this.scriptOnLoadHandler),(0,s.default)({url:PARAMETERS.navigation.mapAPiUrl,onLoad:n,onError:function(){console.log("Failed to load map api")}})}var i=0,l=0,o=a,r=t,f="maximizing";return this.state.routingView||(i=10,l=20,o=Math.min(.3*a,250),r=Math.min(.5*t,300),f="minimizing"),d.default.createElement("div",{displayname:"navigation",className:"navigation-view",style:{width:o,height:r,top:i,left:l}},d.default.createElement("div",{id:"map_canvas"}),d.default.createElement(u.default,{type:f,onClick:this.onClickHandler}))}}]),t}(d.default.Component);t.default=m},470:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=u(a(4)),i=u(a(1)),l=u(a(2)),o=u(a(5)),r=u(a(6)),d=u(a(0));function u(e){return e&&e.__esModule?e:{default:e}}var c=function(e){function t(){return(0,i.default)(this,t),(0,o.default)(this,(t.__proto__||(0,n.default)(t)).apply(this,arguments))}return(0,r.default)(t,e),(0,l.default)(t,[{key:"getMaximizingIcon",value:function(){return d.default.createElement("svg",{viewBox:"0 0 20 20"},d.default.createElement("defs",null,d.default.createElement("path",{d:"M20 0L0 20h20V0z",id:"a"}),d.default.createElement("path",{d:"M11.53 18.5l-.03-7h7",id:"b"}),d.default.createElement("path",{d:"M12 12l7 7",id:"c"})),d.default.createElement("use",{xlinkHref:"#a",opacity:".6",fill:"#549BFF"}),d.default.createElement("use",{xlinkHref:"#b",fillOpacity:"0",stroke:"#006AFF",strokeWidth:"2"}),d.default.createElement("use",{xlinkHref:"#c",fillOpacity:"0",stroke:"#006AFF",strokeWidth:"2"}))}},{key:"getMinimizingIcon",value:function(){return d.default.createElement("svg",{viewBox:"0 0 20 20"},d.default.createElement("defs",null,d.default.createElement("path",{d:"M20 0L0 20h20V0z",id:"a"}),d.default.createElement("path",{d:"M18.47 11.5l.03 7h-7",id:"b"}),d.default.createElement("path",{d:"M11 11l7 7",id:"c"})),d.default.createElement("use",{xlinkHref:"#a",opacity:".6",fill:"#549BFF"}),d.default.createElement("use",{xlinkHref:"#b",fillOpacity:"0",stroke:"#006AFF",strokeWidth:"2"}),d.default.createElement("use",{xlinkHref:"#c",fillOpacity:"0",stroke:"#006AFF",strokeWidth:"2"}))}},{key:"render",value:function(){var e=this.props,t=e.type,a=e.onClick,n=null;switch(t){case"minimizing":n=this.getMinimizingIcon();break;case"maximizing":n=this.getMaximizingIcon()}return d.default.createElement("div",{className:"window-resize-control",onClick:a},n)}}]),t}(d.default.PureComponent);t.default=c},471:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.url,a=e.onLoad,n=e.onError,i=document.createElement("script");i.src=t,i.type="text/javascript",i.async=!0,i.onload=a,i.onerror=n,document.body.appendChild(i)}},472:function(e,t,a){var n={"./BaiduMapAdapter":[473,3],"./GoogleMapAdapter":[474,4]};function i(e){if(!a.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],i=t[0];return a.e(t[1]).then((function(){return a.t(i,7)}))}i.keys=function(){return Object.keys(n)},i.id=472,e.exports=i}}]);
//# sourceMappingURL=2.bundle.js.map
\ No newline at end of file
{"version":3,"file":"2.bundle.js","sources":["webpack:///2.bundle.js"],"sourcesContent":["(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{465:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=p(a(4)),i=p(a(1)),l=p(a(2)),o=p(a(5)),r=p(a(6)),d=p(a(0)),u=p(a(466)),c=p(a(102)),f=p(a(18)),s=p(a(467));function p(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(e){(0,i.default)(this,t);var a=(0,o.default)(this,(t.__proto__||(0,n.default)(t)).call(this,e));return a.state={routingView:!1},a.onClickHandler=a.onClickHandler.bind(a),a.scriptOnLoadHandler=a.scriptOnLoadHandler.bind(a),a}return(0,r.default)(t,e),(0,l.default)(t,[{key:\"onClickHandler\",value:function(){var e=!this.state.routingView;e?c.default.enableControls():c.default.disableControls(),this.setState({routingView:e})}},{key:\"componentDidMount\",value:function(){c.default.mapAPILoaded&&this.scriptOnLoadHandler()}},{key:\"scriptOnLoadHandler\",value:function(){a(468)(\"./\"+PARAMETERS.navigation.map+\"Adapter\").then((function(e){var t=new(0,e.default);c.default.mapAPILoaded=!0,c.default.initialize(f.default,t),c.default.disableControls()}))}},{key:\"componentWillUnmount\",value:function(){c.default.reset()}},{key:\"render\",value:function(){var e=this.props,t=e.viewHeight,a=e.viewWidth;if(\"GoogleMap\"!==PARAMETERS.navigation.map&&\"BaiduMap\"!==PARAMETERS.navigation.map)return console.error(\"Map API \"+PARAMETERS.navigation.map+\" is not supported.\"),null;if(!c.default.mapAPILoaded){var n=function(){console.log(\"Map API script loaded.\")};\"BaiduMap\"===PARAMETERS.navigation.map?window.initMap=this.scriptOnLoadHandler:\"GoogleMap\"===PARAMETERS.navigation.map&&(n=this.scriptOnLoadHandler),(0,s.default)({url:PARAMETERS.navigation.mapAPiUrl,onLoad:n,onError:function(){console.log(\"Failed to load map api\")}})}var i=0,l=0,o=a,r=t,f=\"maximizing\";return this.state.routingView||(i=10,l=20,o=Math.min(.3*a,250),r=Math.min(.5*t,300),f=\"minimizing\"),d.default.createElement(\"div\",{displayname:\"navigation\",className:\"navigation-view\",style:{width:o,height:r,top:i,left:l}},d.default.createElement(\"div\",{id:\"map_canvas\"}),d.default.createElement(u.default,{type:f,onClick:this.onClickHandler}))}}]),t}(d.default.Component);t.default=m},466:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=u(a(4)),i=u(a(1)),l=u(a(2)),o=u(a(5)),r=u(a(6)),d=u(a(0));function u(e){return e&&e.__esModule?e:{default:e}}var c=function(e){function t(){return(0,i.default)(this,t),(0,o.default)(this,(t.__proto__||(0,n.default)(t)).apply(this,arguments))}return(0,r.default)(t,e),(0,l.default)(t,[{key:\"getMaximizingIcon\",value:function(){return d.default.createElement(\"svg\",{viewBox:\"0 0 20 20\"},d.default.createElement(\"defs\",null,d.default.createElement(\"path\",{d:\"M20 0L0 20h20V0z\",id:\"a\"}),d.default.createElement(\"path\",{d:\"M11.53 18.5l-.03-7h7\",id:\"b\"}),d.default.createElement(\"path\",{d:\"M12 12l7 7\",id:\"c\"})),d.default.createElement(\"use\",{xlinkHref:\"#a\",opacity:\".6\",fill:\"#549BFF\"}),d.default.createElement(\"use\",{xlinkHref:\"#b\",fillOpacity:\"0\",stroke:\"#006AFF\",strokeWidth:\"2\"}),d.default.createElement(\"use\",{xlinkHref:\"#c\",fillOpacity:\"0\",stroke:\"#006AFF\",strokeWidth:\"2\"}))}},{key:\"getMinimizingIcon\",value:function(){return d.default.createElement(\"svg\",{viewBox:\"0 0 20 20\"},d.default.createElement(\"defs\",null,d.default.createElement(\"path\",{d:\"M20 0L0 20h20V0z\",id:\"a\"}),d.default.createElement(\"path\",{d:\"M18.47 11.5l.03 7h-7\",id:\"b\"}),d.default.createElement(\"path\",{d:\"M11 11l7 7\",id:\"c\"})),d.default.createElement(\"use\",{xlinkHref:\"#a\",opacity:\".6\",fill:\"#549BFF\"}),d.default.createElement(\"use\",{xlinkHref:\"#b\",fillOpacity:\"0\",stroke:\"#006AFF\",strokeWidth:\"2\"}),d.default.createElement(\"use\",{xlinkHref:\"#c\",fillOpacity:\"0\",stroke:\"#006AFF\",strokeWidth:\"2\"}))}},{key:\"render\",value:function(){var e=this.props,t=e.type,a=e.onClick,n=null;switch(t){case\"minimizing\":n=this.getMinimizingIcon();break;case\"maximizing\":n=this.getMaximizingIcon()}return d.default.createElement(\"div\",{className:\"window-resize-control\",onClick:a},n)}}]),t}(d.default.PureComponent);t.default=c},467:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(e){var t=e.url,a=e.onLoad,n=e.onError,i=document.createElement(\"script\");i.src=t,i.type=\"text/javascript\",i.async=!0,i.onload=a,i.onerror=n,document.body.appendChild(i)}},468:function(e,t,a){var n={\"./BaiduMapAdapter\":[469,3],\"./GoogleMapAdapter\":[470,4]};function i(e){if(!a.o(n,e))return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}));var t=n[e],i=t[0];return a.e(t[1]).then((function(){return a.t(i,7)}))}i.keys=function(){return Object.keys(n)},i.id=468,e.exports=i}}]);"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
{"version":3,"file":"2.bundle.js","sources":["webpack:///2.bundle.js"],"sourcesContent":["(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{469:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=p(a(4)),i=p(a(1)),l=p(a(2)),o=p(a(5)),r=p(a(6)),d=p(a(0)),u=p(a(470)),c=p(a(102)),f=p(a(18)),s=p(a(471));function p(e){return e&&e.__esModule?e:{default:e}}var m=function(e){function t(e){(0,i.default)(this,t);var a=(0,o.default)(this,(t.__proto__||(0,n.default)(t)).call(this,e));return a.state={routingView:!1},a.onClickHandler=a.onClickHandler.bind(a),a.scriptOnLoadHandler=a.scriptOnLoadHandler.bind(a),a}return(0,r.default)(t,e),(0,l.default)(t,[{key:\"onClickHandler\",value:function(){var e=!this.state.routingView;e?c.default.enableControls():c.default.disableControls(),this.setState({routingView:e})}},{key:\"componentDidMount\",value:function(){c.default.mapAPILoaded&&this.scriptOnLoadHandler()}},{key:\"scriptOnLoadHandler\",value:function(){a(472)(\"./\"+PARAMETERS.navigation.map+\"Adapter\").then((function(e){var t=new(0,e.default);c.default.mapAPILoaded=!0,c.default.initialize(f.default,t),c.default.disableControls()}))}},{key:\"componentWillUnmount\",value:function(){c.default.reset()}},{key:\"render\",value:function(){var e=this.props,t=e.viewHeight,a=e.viewWidth;if(\"GoogleMap\"!==PARAMETERS.navigation.map&&\"BaiduMap\"!==PARAMETERS.navigation.map)return console.error(\"Map API \"+PARAMETERS.navigation.map+\" is not supported.\"),null;if(!c.default.mapAPILoaded){var n=function(){console.log(\"Map API script loaded.\")};\"BaiduMap\"===PARAMETERS.navigation.map?window.initMap=this.scriptOnLoadHandler:\"GoogleMap\"===PARAMETERS.navigation.map&&(n=this.scriptOnLoadHandler),(0,s.default)({url:PARAMETERS.navigation.mapAPiUrl,onLoad:n,onError:function(){console.log(\"Failed to load map api\")}})}var i=0,l=0,o=a,r=t,f=\"maximizing\";return this.state.routingView||(i=10,l=20,o=Math.min(.3*a,250),r=Math.min(.5*t,300),f=\"minimizing\"),d.default.createElement(\"div\",{displayname:\"navigation\",className:\"navigation-view\",style:{width:o,height:r,top:i,left:l}},d.default.createElement(\"div\",{id:\"map_canvas\"}),d.default.createElement(u.default,{type:f,onClick:this.onClickHandler}))}}]),t}(d.default.Component);t.default=m},470:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=u(a(4)),i=u(a(1)),l=u(a(2)),o=u(a(5)),r=u(a(6)),d=u(a(0));function u(e){return e&&e.__esModule?e:{default:e}}var c=function(e){function t(){return(0,i.default)(this,t),(0,o.default)(this,(t.__proto__||(0,n.default)(t)).apply(this,arguments))}return(0,r.default)(t,e),(0,l.default)(t,[{key:\"getMaximizingIcon\",value:function(){return d.default.createElement(\"svg\",{viewBox:\"0 0 20 20\"},d.default.createElement(\"defs\",null,d.default.createElement(\"path\",{d:\"M20 0L0 20h20V0z\",id:\"a\"}),d.default.createElement(\"path\",{d:\"M11.53 18.5l-.03-7h7\",id:\"b\"}),d.default.createElement(\"path\",{d:\"M12 12l7 7\",id:\"c\"})),d.default.createElement(\"use\",{xlinkHref:\"#a\",opacity:\".6\",fill:\"#549BFF\"}),d.default.createElement(\"use\",{xlinkHref:\"#b\",fillOpacity:\"0\",stroke:\"#006AFF\",strokeWidth:\"2\"}),d.default.createElement(\"use\",{xlinkHref:\"#c\",fillOpacity:\"0\",stroke:\"#006AFF\",strokeWidth:\"2\"}))}},{key:\"getMinimizingIcon\",value:function(){return d.default.createElement(\"svg\",{viewBox:\"0 0 20 20\"},d.default.createElement(\"defs\",null,d.default.createElement(\"path\",{d:\"M20 0L0 20h20V0z\",id:\"a\"}),d.default.createElement(\"path\",{d:\"M18.47 11.5l.03 7h-7\",id:\"b\"}),d.default.createElement(\"path\",{d:\"M11 11l7 7\",id:\"c\"})),d.default.createElement(\"use\",{xlinkHref:\"#a\",opacity:\".6\",fill:\"#549BFF\"}),d.default.createElement(\"use\",{xlinkHref:\"#b\",fillOpacity:\"0\",stroke:\"#006AFF\",strokeWidth:\"2\"}),d.default.createElement(\"use\",{xlinkHref:\"#c\",fillOpacity:\"0\",stroke:\"#006AFF\",strokeWidth:\"2\"}))}},{key:\"render\",value:function(){var e=this.props,t=e.type,a=e.onClick,n=null;switch(t){case\"minimizing\":n=this.getMinimizingIcon();break;case\"maximizing\":n=this.getMaximizingIcon()}return d.default.createElement(\"div\",{className:\"window-resize-control\",onClick:a},n)}}]),t}(d.default.PureComponent);t.default=c},471:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(e){var t=e.url,a=e.onLoad,n=e.onError,i=document.createElement(\"script\");i.src=t,i.type=\"text/javascript\",i.async=!0,i.onload=a,i.onerror=n,document.body.appendChild(i)}},472:function(e,t,a){var n={\"./BaiduMapAdapter\":[473,3],\"./GoogleMapAdapter\":[474,4]};function i(e){if(!a.o(n,e))return Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}));var t=n[e],i=t[0];return a.e(t[1]).then((function(){return a.t(i,7)}))}i.keys=function(){return Object.keys(n)},i.id=472,e.exports=i}}]);"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{469:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=d(n(4)),o=d(n(5)),i=d(n(6)),l=d(n(67)),r=d(n(1)),s=d(n(2)),u=n(168);function d(e){return e&&e.__esModule?e:{default:e}}var c=function(){function e(){(0,r.default)(this,e),this.map=null,this.controls=[],this.initializedCenter=!1}return(0,s.default)(e,[{key:"isInitialized",value:function(){return null!==this.map}},{key:"loadMap",value:function(e,t){this.map=new BMap.Map(t,{enableMapClick:!1}),this.map.enableScrollWheelZoom(),this.map.addControl(new BMap.MapTypeControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_SMALL})),this.map.addControl(new BMap.NavigationControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,type:BMAP_NAVIGATION_CONTROL_SMALL,enableGeolocation:!1}))}},{key:"setCenter",value:function(e){this.initializedCenter?this.map.setCenter(e):(this.map.centerAndZoom(e,19),this.initializedCenter=!0)}},{key:"setZoom",value:function(e){this.map.setZoom(e)}},{key:"addEventHandler",value:function(e,t){this.map.addEventListener(e,(function(e){var n=e.point;t(n)}))}},{key:"createPoint",value:function(e){var t=e.lat,n=e.lng;return new BMap.Point(n,t)}},{key:"createMarker",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=null;t&&(a=new BMap.Label(t,{point:e,offset:new BMap.Size(15,-15)}));var o=new BMap.Marker(e,{label:a,enableDragging:n,rotation:5});return o.setLabel(a),this.map.addOverlay(o),o}},{key:"createPolyline",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,o={geodesic:!0,strokeColor:t,strokeOpacity:n,strokeWeight:a},i=new BMap.Polyline(e,o);return this.map.addOverlay(i),i}},{key:"createControl",value:function(e){var t=e.text,n=e.tip,a=e.color,o=e.offsetX,i=e.offsetY,l=e.onClickHandler,r=new p(t,n,a,new BMap.Size(o,i),l);this.map.addControl(r),this.controls.push(r)}},{key:"disableControls",value:function(){var e=this;this.controls.forEach((function(t){e.map.removeControl(t)}))}},{key:"enableControls",value:function(){var e=this;this.controls.forEach((function(t){e.map.addControl(t)}))}},{key:"getMarkerPosition",value:function(e){return e.getPosition()}},{key:"updatePolyline",value:function(e,t){e.setPath(t)}},{key:"removePolyline",value:function(e){this.map.removeOverlay(e)}},{key:"applyCoordinateOffset",value:function(e){var t=(0,l.default)(e,2),n=t[0],a=t[1];return(0,u.WGS84ToBD09LL)(n,a)}}]),e}();t.default=c;var p=function(e){function t(e,n,i,l,s){var u;(0,r.default)(this,t);for(var d=arguments.length,c=Array(d>5?d-5:0),p=5;p<d;p++)c[p-5]=arguments[p];var f=(0,o.default)(this,(u=t.__proto__||(0,a.default)(t)).call.apply(u,[this].concat(c)));return f.defaultAnchor=BMAP_ANCHOR_TOP_LEFT,f.defaultOffset=l,f.onClickHandler=s,f.title=n,f.text=e,f.backgroundColor=i,f}return(0,i.default)(t,e),(0,s.default)(t,[{key:"initialize",value:function(e){var t=this,n=document.createElement("div"),a=document.createElement("div");a.style.backgroundColor=this.backgroundColor,a.style.border="2px solid #fff",a.style.borderRadius="3px",a.style.boxShadow="0 2px 6px rgba(0,0,0,.3)",a.style.cursor="pointer",a.style.marginBottom="22px",a.style.textAlign="center",a.title=this.title,n.appendChild(a);var o=document.createElement("div");return o.style.color="rgb(25,25,25)",o.style.fontFamily="Roboto,Arial,sans-serif",o.style.fontSize="16px",o.style.lineHeight="38px",o.style.paddingLeft="5px",o.style.paddingRight="5px",o.innerHTML=this.text,a.appendChild(o),e.getContainer().appendChild(n),a.addEventListener("click",(function(){t.onClickHandler(o)})),n}}]),t}(BMap.Control)}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{473:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=d(n(4)),o=d(n(5)),i=d(n(6)),l=d(n(67)),r=d(n(1)),s=d(n(2)),u=n(169);function d(e){return e&&e.__esModule?e:{default:e}}var c=function(){function e(){(0,r.default)(this,e),this.map=null,this.controls=[],this.initializedCenter=!1}return(0,s.default)(e,[{key:"isInitialized",value:function(){return null!==this.map}},{key:"loadMap",value:function(e,t){this.map=new BMap.Map(t,{enableMapClick:!1}),this.map.enableScrollWheelZoom(),this.map.addControl(new BMap.MapTypeControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_SMALL})),this.map.addControl(new BMap.NavigationControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,type:BMAP_NAVIGATION_CONTROL_SMALL,enableGeolocation:!1}))}},{key:"setCenter",value:function(e){this.initializedCenter?this.map.setCenter(e):(this.map.centerAndZoom(e,19),this.initializedCenter=!0)}},{key:"setZoom",value:function(e){this.map.setZoom(e)}},{key:"addEventHandler",value:function(e,t){this.map.addEventListener(e,(function(e){var n=e.point;t(n)}))}},{key:"createPoint",value:function(e){var t=e.lat,n=e.lng;return new BMap.Point(n,t)}},{key:"createMarker",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=null;t&&(a=new BMap.Label(t,{point:e,offset:new BMap.Size(15,-15)}));var o=new BMap.Marker(e,{label:a,enableDragging:n,rotation:5});return o.setLabel(a),this.map.addOverlay(o),o}},{key:"createPolyline",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,o={geodesic:!0,strokeColor:t,strokeOpacity:n,strokeWeight:a},i=new BMap.Polyline(e,o);return this.map.addOverlay(i),i}},{key:"createControl",value:function(e){var t=e.text,n=e.tip,a=e.color,o=e.offsetX,i=e.offsetY,l=e.onClickHandler,r=new p(t,n,a,new BMap.Size(o,i),l);this.map.addControl(r),this.controls.push(r)}},{key:"disableControls",value:function(){var e=this;this.controls.forEach((function(t){e.map.removeControl(t)}))}},{key:"enableControls",value:function(){var e=this;this.controls.forEach((function(t){e.map.addControl(t)}))}},{key:"getMarkerPosition",value:function(e){return e.getPosition()}},{key:"updatePolyline",value:function(e,t){e.setPath(t)}},{key:"removePolyline",value:function(e){this.map.removeOverlay(e)}},{key:"applyCoordinateOffset",value:function(e){var t=(0,l.default)(e,2),n=t[0],a=t[1];return(0,u.WGS84ToBD09LL)(n,a)}}]),e}();t.default=c;var p=function(e){function t(e,n,i,l,s){var u;(0,r.default)(this,t);for(var d=arguments.length,c=Array(d>5?d-5:0),p=5;p<d;p++)c[p-5]=arguments[p];var f=(0,o.default)(this,(u=t.__proto__||(0,a.default)(t)).call.apply(u,[this].concat(c)));return f.defaultAnchor=BMAP_ANCHOR_TOP_LEFT,f.defaultOffset=l,f.onClickHandler=s,f.title=n,f.text=e,f.backgroundColor=i,f}return(0,i.default)(t,e),(0,s.default)(t,[{key:"initialize",value:function(e){var t=this,n=document.createElement("div"),a=document.createElement("div");a.style.backgroundColor=this.backgroundColor,a.style.border="2px solid #fff",a.style.borderRadius="3px",a.style.boxShadow="0 2px 6px rgba(0,0,0,.3)",a.style.cursor="pointer",a.style.marginBottom="22px",a.style.textAlign="center",a.title=this.title,n.appendChild(a);var o=document.createElement("div");return o.style.color="rgb(25,25,25)",o.style.fontFamily="Roboto,Arial,sans-serif",o.style.fontSize="16px",o.style.lineHeight="38px",o.style.paddingLeft="5px",o.style.paddingRight="5px",o.innerHTML=this.text,a.appendChild(o),e.getContainer().appendChild(n),a.addEventListener("click",(function(){t.onClickHandler(o)})),n}}]),t}(BMap.Control)}}]);
//# sourceMappingURL=3.bundle.js.map
\ No newline at end of file
{"version":3,"file":"3.bundle.js","sources":["webpack:///3.bundle.js"],"sourcesContent":["(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{469:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var a=d(n(4)),o=d(n(5)),i=d(n(6)),l=d(n(67)),r=d(n(1)),s=d(n(2)),u=n(168);function d(e){return e&&e.__esModule?e:{default:e}}var c=function(){function e(){(0,r.default)(this,e),this.map=null,this.controls=[],this.initializedCenter=!1}return(0,s.default)(e,[{key:\"isInitialized\",value:function(){return null!==this.map}},{key:\"loadMap\",value:function(e,t){this.map=new BMap.Map(t,{enableMapClick:!1}),this.map.enableScrollWheelZoom(),this.map.addControl(new BMap.MapTypeControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_SMALL})),this.map.addControl(new BMap.NavigationControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,type:BMAP_NAVIGATION_CONTROL_SMALL,enableGeolocation:!1}))}},{key:\"setCenter\",value:function(e){this.initializedCenter?this.map.setCenter(e):(this.map.centerAndZoom(e,19),this.initializedCenter=!0)}},{key:\"setZoom\",value:function(e){this.map.setZoom(e)}},{key:\"addEventHandler\",value:function(e,t){this.map.addEventListener(e,(function(e){var n=e.point;t(n)}))}},{key:\"createPoint\",value:function(e){var t=e.lat,n=e.lng;return new BMap.Point(n,t)}},{key:\"createMarker\",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=null;t&&(a=new BMap.Label(t,{point:e,offset:new BMap.Size(15,-15)}));var o=new BMap.Marker(e,{label:a,enableDragging:n,rotation:5});return o.setLabel(a),this.map.addOverlay(o),o}},{key:\"createPolyline\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,o={geodesic:!0,strokeColor:t,strokeOpacity:n,strokeWeight:a},i=new BMap.Polyline(e,o);return this.map.addOverlay(i),i}},{key:\"createControl\",value:function(e){var t=e.text,n=e.tip,a=e.color,o=e.offsetX,i=e.offsetY,l=e.onClickHandler,r=new p(t,n,a,new BMap.Size(o,i),l);this.map.addControl(r),this.controls.push(r)}},{key:\"disableControls\",value:function(){var e=this;this.controls.forEach((function(t){e.map.removeControl(t)}))}},{key:\"enableControls\",value:function(){var e=this;this.controls.forEach((function(t){e.map.addControl(t)}))}},{key:\"getMarkerPosition\",value:function(e){return e.getPosition()}},{key:\"updatePolyline\",value:function(e,t){e.setPath(t)}},{key:\"removePolyline\",value:function(e){this.map.removeOverlay(e)}},{key:\"applyCoordinateOffset\",value:function(e){var t=(0,l.default)(e,2),n=t[0],a=t[1];return(0,u.WGS84ToBD09LL)(n,a)}}]),e}();t.default=c;var p=function(e){function t(e,n,i,l,s){var u;(0,r.default)(this,t);for(var d=arguments.length,c=Array(d>5?d-5:0),p=5;p<d;p++)c[p-5]=arguments[p];var f=(0,o.default)(this,(u=t.__proto__||(0,a.default)(t)).call.apply(u,[this].concat(c)));return f.defaultAnchor=BMAP_ANCHOR_TOP_LEFT,f.defaultOffset=l,f.onClickHandler=s,f.title=n,f.text=e,f.backgroundColor=i,f}return(0,i.default)(t,e),(0,s.default)(t,[{key:\"initialize\",value:function(e){var t=this,n=document.createElement(\"div\"),a=document.createElement(\"div\");a.style.backgroundColor=this.backgroundColor,a.style.border=\"2px solid #fff\",a.style.borderRadius=\"3px\",a.style.boxShadow=\"0 2px 6px rgba(0,0,0,.3)\",a.style.cursor=\"pointer\",a.style.marginBottom=\"22px\",a.style.textAlign=\"center\",a.title=this.title,n.appendChild(a);var o=document.createElement(\"div\");return o.style.color=\"rgb(25,25,25)\",o.style.fontFamily=\"Roboto,Arial,sans-serif\",o.style.fontSize=\"16px\",o.style.lineHeight=\"38px\",o.style.paddingLeft=\"5px\",o.style.paddingRight=\"5px\",o.innerHTML=this.text,a.appendChild(o),e.getContainer().appendChild(n),a.addEventListener(\"click\",(function(){t.onClickHandler(o)})),n}}]),t}(BMap.Control)}}]);"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
{"version":3,"file":"3.bundle.js","sources":["webpack:///3.bundle.js"],"sourcesContent":["(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{473:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var a=d(n(4)),o=d(n(5)),i=d(n(6)),l=d(n(67)),r=d(n(1)),s=d(n(2)),u=n(169);function d(e){return e&&e.__esModule?e:{default:e}}var c=function(){function e(){(0,r.default)(this,e),this.map=null,this.controls=[],this.initializedCenter=!1}return(0,s.default)(e,[{key:\"isInitialized\",value:function(){return null!==this.map}},{key:\"loadMap\",value:function(e,t){this.map=new BMap.Map(t,{enableMapClick:!1}),this.map.enableScrollWheelZoom(),this.map.addControl(new BMap.MapTypeControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_SMALL})),this.map.addControl(new BMap.NavigationControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,type:BMAP_NAVIGATION_CONTROL_SMALL,enableGeolocation:!1}))}},{key:\"setCenter\",value:function(e){this.initializedCenter?this.map.setCenter(e):(this.map.centerAndZoom(e,19),this.initializedCenter=!0)}},{key:\"setZoom\",value:function(e){this.map.setZoom(e)}},{key:\"addEventHandler\",value:function(e,t){this.map.addEventListener(e,(function(e){var n=e.point;t(n)}))}},{key:\"createPoint\",value:function(e){var t=e.lat,n=e.lng;return new BMap.Point(n,t)}},{key:\"createMarker\",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=null;t&&(a=new BMap.Label(t,{point:e,offset:new BMap.Size(15,-15)}));var o=new BMap.Marker(e,{label:a,enableDragging:n,rotation:5});return o.setLabel(a),this.map.addOverlay(o),o}},{key:\"createPolyline\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,o={geodesic:!0,strokeColor:t,strokeOpacity:n,strokeWeight:a},i=new BMap.Polyline(e,o);return this.map.addOverlay(i),i}},{key:\"createControl\",value:function(e){var t=e.text,n=e.tip,a=e.color,o=e.offsetX,i=e.offsetY,l=e.onClickHandler,r=new p(t,n,a,new BMap.Size(o,i),l);this.map.addControl(r),this.controls.push(r)}},{key:\"disableControls\",value:function(){var e=this;this.controls.forEach((function(t){e.map.removeControl(t)}))}},{key:\"enableControls\",value:function(){var e=this;this.controls.forEach((function(t){e.map.addControl(t)}))}},{key:\"getMarkerPosition\",value:function(e){return e.getPosition()}},{key:\"updatePolyline\",value:function(e,t){e.setPath(t)}},{key:\"removePolyline\",value:function(e){this.map.removeOverlay(e)}},{key:\"applyCoordinateOffset\",value:function(e){var t=(0,l.default)(e,2),n=t[0],a=t[1];return(0,u.WGS84ToBD09LL)(n,a)}}]),e}();t.default=c;var p=function(e){function t(e,n,i,l,s){var u;(0,r.default)(this,t);for(var d=arguments.length,c=Array(d>5?d-5:0),p=5;p<d;p++)c[p-5]=arguments[p];var f=(0,o.default)(this,(u=t.__proto__||(0,a.default)(t)).call.apply(u,[this].concat(c)));return f.defaultAnchor=BMAP_ANCHOR_TOP_LEFT,f.defaultOffset=l,f.onClickHandler=s,f.title=n,f.text=e,f.backgroundColor=i,f}return(0,i.default)(t,e),(0,s.default)(t,[{key:\"initialize\",value:function(e){var t=this,n=document.createElement(\"div\"),a=document.createElement(\"div\");a.style.backgroundColor=this.backgroundColor,a.style.border=\"2px solid #fff\",a.style.borderRadius=\"3px\",a.style.boxShadow=\"0 2px 6px rgba(0,0,0,.3)\",a.style.cursor=\"pointer\",a.style.marginBottom=\"22px\",a.style.textAlign=\"center\",a.title=this.title,n.appendChild(a);var o=document.createElement(\"div\");return o.style.color=\"rgb(25,25,25)\",o.style.fontFamily=\"Roboto,Arial,sans-serif\",o.style.fontSize=\"16px\",o.style.lineHeight=\"38px\",o.style.paddingLeft=\"5px\",o.style.paddingRight=\"5px\",o.innerHTML=this.text,a.appendChild(o),e.getContainer().appendChild(n),a.addEventListener(\"click\",(function(){t.onClickHandler(o)})),n}}]),t}(BMap.Control)}}]);"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{470:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(67)),l=r(n(1)),a=r(n(2)),i=n(168);function r(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(){(0,l.default)(this,e),this.map=null,this.controls=[]}return(0,a.default)(e,[{key:"isInitialized",value:function(){return null!==this.map}},{key:"loadMap",value:function(e,t){var n={center:e,zoom:20,mapTypeId:google.maps.MapTypeId.ROADMAP,fullscreenControl:!1};this.map=new google.maps.Map(document.getElementById(t),n)}},{key:"setCenter",value:function(e){this.map.setCenter(e)}},{key:"setZoom",value:function(e){this.map.setZoom(e)}},{key:"addEventHandler",value:function(e,t){google.maps.event.addListener(this.map,e,(function(e){var n=e.latLng;t(n)}))}},{key:"createPoint",value:function(e){var t=e.lat,n=e.lng;return new google.maps.LatLng(t,n)}},{key:"createMarker",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=new google.maps.Marker({position:e,label:t,draggable:n,map:this.map});return o}},{key:"createPolyline",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,l=new google.maps.Polyline({path:e,geodesic:!0,strokeColor:t,strokeOpacity:n,strokeWeight:o,map:this.map});return l}},{key:"createControl",value:function(e){var t=e.text,n=e.tip,o=e.color,l=(e.offsetX,e.offsetY,e.onClickHandler),a=document.createElement("div"),i=document.createElement("div");i.style.backgroundColor=o,i.style.border="2px solid #fff",i.style.borderRadius="3px",i.style.boxShadow="0 2px 6px rgba(0,0,0,.3)",i.style.cursor="pointer",i.style.marginBottom="22px",i.style.textAlign="center",i.title=n,a.appendChild(i);var r=document.createElement("div");r.style.color="rgb(25,25,25)",r.style.fontFamily="Roboto,Arial,sans-serif",r.style.fontSize="16px",r.style.lineHeight="38px",r.style.paddingLeft="5px",r.style.paddingRight="5px",r.innerHTML=t,i.appendChild(r),i.addEventListener("click",(function(){l(r)})),this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(a),this.controls.push(a)}},{key:"disableControls",value:function(){this.controls.forEach((function(e){e.style.display="none"}))}},{key:"enableControls",value:function(){this.controls.forEach((function(e){e.style.display="block"}))}},{key:"getMarkerPosition",value:function(e){var t=e.getPosition();return{lat:t.lat(),lng:t.lng()}}},{key:"updatePolyline",value:function(e,t){e.setPath(t)}},{key:"removePolyline",value:function(e){e.setMap(null)}},{key:"applyCoordinateOffset",value:function(e){var t=(0,o.default)(e,2),n=t[0],l=t[1];return(0,i.WGS84ToGCJ02)(n,l)}}]),e}();t.default=s}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{474:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(67)),l=r(n(1)),a=r(n(2)),i=n(169);function r(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(){(0,l.default)(this,e),this.map=null,this.controls=[]}return(0,a.default)(e,[{key:"isInitialized",value:function(){return null!==this.map}},{key:"loadMap",value:function(e,t){var n={center:e,zoom:20,mapTypeId:google.maps.MapTypeId.ROADMAP,fullscreenControl:!1};this.map=new google.maps.Map(document.getElementById(t),n)}},{key:"setCenter",value:function(e){this.map.setCenter(e)}},{key:"setZoom",value:function(e){this.map.setZoom(e)}},{key:"addEventHandler",value:function(e,t){google.maps.event.addListener(this.map,e,(function(e){var n=e.latLng;t(n)}))}},{key:"createPoint",value:function(e){var t=e.lat,n=e.lng;return new google.maps.LatLng(t,n)}},{key:"createMarker",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=new google.maps.Marker({position:e,label:t,draggable:n,map:this.map});return o}},{key:"createPolyline",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,l=new google.maps.Polyline({path:e,geodesic:!0,strokeColor:t,strokeOpacity:n,strokeWeight:o,map:this.map});return l}},{key:"createControl",value:function(e){var t=e.text,n=e.tip,o=e.color,l=(e.offsetX,e.offsetY,e.onClickHandler),a=document.createElement("div"),i=document.createElement("div");i.style.backgroundColor=o,i.style.border="2px solid #fff",i.style.borderRadius="3px",i.style.boxShadow="0 2px 6px rgba(0,0,0,.3)",i.style.cursor="pointer",i.style.marginBottom="22px",i.style.textAlign="center",i.title=n,a.appendChild(i);var r=document.createElement("div");r.style.color="rgb(25,25,25)",r.style.fontFamily="Roboto,Arial,sans-serif",r.style.fontSize="16px",r.style.lineHeight="38px",r.style.paddingLeft="5px",r.style.paddingRight="5px",r.innerHTML=t,i.appendChild(r),i.addEventListener("click",(function(){l(r)})),this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(a),this.controls.push(a)}},{key:"disableControls",value:function(){this.controls.forEach((function(e){e.style.display="none"}))}},{key:"enableControls",value:function(){this.controls.forEach((function(e){e.style.display="block"}))}},{key:"getMarkerPosition",value:function(e){var t=e.getPosition();return{lat:t.lat(),lng:t.lng()}}},{key:"updatePolyline",value:function(e,t){e.setPath(t)}},{key:"removePolyline",value:function(e){e.setMap(null)}},{key:"applyCoordinateOffset",value:function(e){var t=(0,o.default)(e,2),n=t[0],l=t[1];return(0,i.WGS84ToGCJ02)(n,l)}}]),e}();t.default=s}}]);
//# sourceMappingURL=4.bundle.js.map
\ No newline at end of file
{"version":3,"file":"4.bundle.js","sources":["webpack:///4.bundle.js"],"sourcesContent":["(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{470:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var o=r(n(67)),l=r(n(1)),a=r(n(2)),i=n(168);function r(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(){(0,l.default)(this,e),this.map=null,this.controls=[]}return(0,a.default)(e,[{key:\"isInitialized\",value:function(){return null!==this.map}},{key:\"loadMap\",value:function(e,t){var n={center:e,zoom:20,mapTypeId:google.maps.MapTypeId.ROADMAP,fullscreenControl:!1};this.map=new google.maps.Map(document.getElementById(t),n)}},{key:\"setCenter\",value:function(e){this.map.setCenter(e)}},{key:\"setZoom\",value:function(e){this.map.setZoom(e)}},{key:\"addEventHandler\",value:function(e,t){google.maps.event.addListener(this.map,e,(function(e){var n=e.latLng;t(n)}))}},{key:\"createPoint\",value:function(e){var t=e.lat,n=e.lng;return new google.maps.LatLng(t,n)}},{key:\"createMarker\",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=new google.maps.Marker({position:e,label:t,draggable:n,map:this.map});return o}},{key:\"createPolyline\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,l=new google.maps.Polyline({path:e,geodesic:!0,strokeColor:t,strokeOpacity:n,strokeWeight:o,map:this.map});return l}},{key:\"createControl\",value:function(e){var t=e.text,n=e.tip,o=e.color,l=(e.offsetX,e.offsetY,e.onClickHandler),a=document.createElement(\"div\"),i=document.createElement(\"div\");i.style.backgroundColor=o,i.style.border=\"2px solid #fff\",i.style.borderRadius=\"3px\",i.style.boxShadow=\"0 2px 6px rgba(0,0,0,.3)\",i.style.cursor=\"pointer\",i.style.marginBottom=\"22px\",i.style.textAlign=\"center\",i.title=n,a.appendChild(i);var r=document.createElement(\"div\");r.style.color=\"rgb(25,25,25)\",r.style.fontFamily=\"Roboto,Arial,sans-serif\",r.style.fontSize=\"16px\",r.style.lineHeight=\"38px\",r.style.paddingLeft=\"5px\",r.style.paddingRight=\"5px\",r.innerHTML=t,i.appendChild(r),i.addEventListener(\"click\",(function(){l(r)})),this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(a),this.controls.push(a)}},{key:\"disableControls\",value:function(){this.controls.forEach((function(e){e.style.display=\"none\"}))}},{key:\"enableControls\",value:function(){this.controls.forEach((function(e){e.style.display=\"block\"}))}},{key:\"getMarkerPosition\",value:function(e){var t=e.getPosition();return{lat:t.lat(),lng:t.lng()}}},{key:\"updatePolyline\",value:function(e,t){e.setPath(t)}},{key:\"removePolyline\",value:function(e){e.setMap(null)}},{key:\"applyCoordinateOffset\",value:function(e){var t=(0,o.default)(e,2),n=t[0],l=t[1];return(0,i.WGS84ToGCJ02)(n,l)}}]),e}();t.default=s}}]);"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
{"version":3,"file":"4.bundle.js","sources":["webpack:///4.bundle.js"],"sourcesContent":["(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{474:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var o=r(n(67)),l=r(n(1)),a=r(n(2)),i=n(169);function r(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(){(0,l.default)(this,e),this.map=null,this.controls=[]}return(0,a.default)(e,[{key:\"isInitialized\",value:function(){return null!==this.map}},{key:\"loadMap\",value:function(e,t){var n={center:e,zoom:20,mapTypeId:google.maps.MapTypeId.ROADMAP,fullscreenControl:!1};this.map=new google.maps.Map(document.getElementById(t),n)}},{key:\"setCenter\",value:function(e){this.map.setCenter(e)}},{key:\"setZoom\",value:function(e){this.map.setZoom(e)}},{key:\"addEventHandler\",value:function(e,t){google.maps.event.addListener(this.map,e,(function(e){var n=e.latLng;t(n)}))}},{key:\"createPoint\",value:function(e){var t=e.lat,n=e.lng;return new google.maps.LatLng(t,n)}},{key:\"createMarker\",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=new google.maps.Marker({position:e,label:t,draggable:n,map:this.map});return o}},{key:\"createPolyline\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2,l=new google.maps.Polyline({path:e,geodesic:!0,strokeColor:t,strokeOpacity:n,strokeWeight:o,map:this.map});return l}},{key:\"createControl\",value:function(e){var t=e.text,n=e.tip,o=e.color,l=(e.offsetX,e.offsetY,e.onClickHandler),a=document.createElement(\"div\"),i=document.createElement(\"div\");i.style.backgroundColor=o,i.style.border=\"2px solid #fff\",i.style.borderRadius=\"3px\",i.style.boxShadow=\"0 2px 6px rgba(0,0,0,.3)\",i.style.cursor=\"pointer\",i.style.marginBottom=\"22px\",i.style.textAlign=\"center\",i.title=n,a.appendChild(i);var r=document.createElement(\"div\");r.style.color=\"rgb(25,25,25)\",r.style.fontFamily=\"Roboto,Arial,sans-serif\",r.style.fontSize=\"16px\",r.style.lineHeight=\"38px\",r.style.paddingLeft=\"5px\",r.style.paddingRight=\"5px\",r.innerHTML=t,i.appendChild(r),i.addEventListener(\"click\",(function(){l(r)})),this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(a),this.controls.push(a)}},{key:\"disableControls\",value:function(){this.controls.forEach((function(e){e.style.display=\"none\"}))}},{key:\"enableControls\",value:function(){this.controls.forEach((function(e){e.style.display=\"block\"}))}},{key:\"getMarkerPosition\",value:function(e){var t=e.getPosition();return{lat:t.lat(),lng:t.lng()}}},{key:\"updatePolyline\",value:function(e,t){e.setPath(t)}},{key:\"removePolyline\",value:function(e){e.setMap(null)}},{key:\"applyCoordinateOffset\",value:function(e){var t=(0,o.default)(e,2),n=t[0],l=t[1];return(0,i.WGS84ToGCJ02)(n,l)}}]),e}();t.default=s}}]);"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
......@@ -3,9 +3,9 @@ Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
......
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r(r.s=462)}({462:function(e,t){e.exports='module.exports = __webpack_public_path__ + "parameters.json";'}});
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r(r.s=466)}({466:function(e,t){e.exports='module.exports = __webpack_public_path__ + "parameters.json";'}});
//# sourceMappingURL=parameters.bundle.js.map
\ No newline at end of file
{"version":3,"file":"parameters.bundle.js","sources":["webpack:///parameters.bundle.js"],"sourcesContent":["!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"/\",r(r.s=462)}({462:function(e,t){e.exports='module.exports = __webpack_public_path__ + \"parameters.json\";'}});"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
{"version":3,"file":"parameters.bundle.js","sources":["webpack:///parameters.bundle.js"],"sourcesContent":["!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"/\",r(r.s=466)}({466:function(e,t){e.exports='module.exports = __webpack_public_path__ + \"parameters.json\";'}});"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
import React, { Component } from 'react';
import ReactTooltip from 'react-tooltip';
import { inject, observer } from 'mobx-react';
import positionIcon from "assets/images/icons/position.png";
import rotationIcon from "assets/images/icons/rotation.png";
const EditSvg = ({ inEditMode }) => (
<svg viewBox="0 0 1024 1024" width="20" height="20" fill={inEditMode ? "#FFFFFF" : "#999999"}>
<path d="M996.3776 72.4736L951.68 27.648C934.1184 10.0608 910.4128 0 886.8096 0c-20.864 0-40.0384 7.7056-54.144 21.7856L359.168 495.7952c-0.512 0.4352-0.3584 1.1008-0.7168 1.664-0.6144 0.7936-1.2544 1.6128-1.5104 2.6368l-48.6656 178.5344c-2.8416 10.3936 0.0768 21.6064 7.7568 29.4912 5.7088 5.5808 13.312 8.6784 21.376 8.6784 2.6624 0 5.3248-0.3584 7.9616-0.9984l177.0752-48.3584c0.3072 0 0.4608 0.256 0.64 0.256a7.68 7.68 0 0 0 5.5552-2.304l473.6-473.8816c14.0288-14.08 21.7344-33.3056 21.76-54.1952 0-23.6544-10.0352-47.3344-27.6224-64.8448z m-560.128 418.6112L779.9808 146.944l97.2544 97.2288-343.8592 344.064-97.1264-97.152z m-34.2272 38.1952l92.672 92.672-127.4368 34.7904 34.7648-127.4624zM966.016 155.3152L913.408 207.9488l-97.2544-97.2288 52.6592-52.7104c5.632-5.632 12.8768-6.8096 17.9968-6.8096 10.0608 0 20.7872 4.7104 28.6208 12.5696l44.8256 44.9536c7.8336 7.8592 12.544 18.5344 12.544 28.544 0 5.1456-1.2032 12.4672-6.784 18.048z"></path>
<path d="M921.6 947.2a25.6 25.6 0 0 1-25.6 25.6H76.8c-14.1056 0-25.6-11.4688-25.6-25.6V128c0-14.1056 11.4944-25.6 25.6-25.6h486.4V51.2H76.8a76.8 76.8 0 0 0-76.8 76.8v819.2a76.8 76.8 0 0 0 76.8 76.8h819.2a76.8 76.8 0 0 0 76.8-76.8V460.8h-51.2v486.4z"></path>
</svg>
);
const ResetSvg = () => (
<svg viewBox="0 0 1024 1024" width="20" height="20" fill="#999999">
<path d="M978.637 890.58H178.116V1024L0 846.551l176.115-174.78v133.42H933.94c29.353 0 44.696-12.008 44.696-41.36V496.99l88.725-141.426V800.52a88.724 88.724 0 0 1-88.725 88.058z m-88.724-667.101H133.42c-29.352 0-44.696 12.008-44.696 42.027v268.175L0 673.105v-450.96a88.724 88.724 0 0 1 88.724-88.725h800.522V0l178.116 178.116-176.115 176.115V220.81z"></path>
</svg>
);
const UpArrowSvg = ({onClick}) => (
<svg viewBox="0 0 1024 1024" width="15" height="15" onClick={onClick} fill="#999999">
<path d="M820.00415442 790.08350547l-617.53286931-1e-8c-34.17530758 0-61.8167847-27.4267503-61.81678473-61.59899038 0-15.89285244 6.0951742-30.25807684 15.89285244-41.14165922l305.39062223-407.4809563c20.4634662-26.98809409 58.98852574-32.65074716 86.20054921-12.19034849 4.79147569 3.48470957 8.92343326 7.61973466 12.19034848 12.19034849L869.19806953 691.69567529c20.24260435 26.99116162 14.79774561 65.73401549-12.40814284 85.97968733C845.68548239 786.16627474 832.84481844 790.08350547 820.00415442 790.08350547L820.00415442 790.08350547z"></path>
</svg>
);
const DownArrowSvg = ({onClick}) => (
<svg viewBox="0 0 1024 1024" width="15" height="15" onClick={onClick} fill="#999999">
<path d="M151.477 199.554l718.53099999 0c39.763 0 71.922 31.91 71.92200002 71.674 0 18.485-7.096 35.206-18.48600001 47.872l-355.33 474.125c-23.81 31.4-68.641 37.994-100.297 14.183-5.571-4.052-10.385-8.873-14.183-14.19l-359.398-479.178c-23.547-31.407-17.217-76.48 14.43699999-100.041 12.922-9.881 27.865-14.438 42.80500001-14.439v0l0-0.007zM151.477 199.554z"></path>
</svg>
);
const FIELDS = {
Position: {
X: 'x',
Y: 'y',
Z: 'z'
},
StaticRotation: {
Pitch: 'x',
Yaw: 'y',
Roll: 'z'
},
DynamicRotation: {
Pitch: 'y',
Yaw: 'z',
Roll: 'x'
}
};
@inject("store") @observer
export default class CameraParam extends Component {
constructor(props) {
super(props);
this.state = {
hidden: true,
inEditMode: false,
};
this.toggleEditMode = this.toggleEditMode.bind(this);
this.resetParam = this.resetParam.bind(this);
}
componentWillMount() {
this.props.store.updateWidthInPercentage(0.8);
}
componentWillUnmount() {
this.props.store.updateWidthInPercentage(1.0);
}
toggleEditMode() {
this.setState({ inEditMode: !this.state.inEditMode });
}
resetParam() {
this.props.store.cameraData.reset();
}
renderParamRow(type) {
function getDeltaColorAndText(delta) {
let color = '#FFFFFF';
let text = '-';
if (delta > 0) {
color = '#1C9063';
text = `+${delta}`;
} else if (delta < 0) {
color = '#B43131';
text = delta;
}
return {color, text};
};
const { cameraData } = this.props.store;
let step = undefined;
switch (type) {
case 'Position': {
step = 2;
break;
};
case 'StaticRotation':
case 'DynamicRotation': {
step = 3;
break;
}
default:
console.warn('Unknown parameter type:', type);
return null;
}
const rows = Object.keys(FIELDS[type]).map((field) => {
const axis = FIELDS[type][field];
const adjustStep = Math.pow(0.1, step);
const value = cameraData[`init${type}`].get(axis).toFixed(step);
const delta = cameraData[`delta${type}`].get(axis).toFixed(step);
const { color, text } = getDeltaColorAndText(delta);
return (
<div className="section-content-row" key={`${type}_${field}`}>
<div className="field">{field}</div>
<div className="value">{value}</div>
<div className="delta" style={{color}}>{text}</div>
{ this.state.inEditMode &&
<div className="action">
<UpArrowSvg onClick={() => cameraData.update(
type, axis, adjustStep)} />
<DownArrowSvg onClick={() => cameraData.update(
type, axis, (-1) * adjustStep)} />
</div>
}
</div>
);
});
return rows;
}
renderCameraParam() {
return (
<div className="camera-param-content">
<div className="section">
<div className="section-title"
data-tip="Camera position in world coordinate system"
data-for="param">
<img height="20px" width="20px" src={positionIcon} />
<span>Position</span>
</div>
<div className="section-content">
{this.renderParamRow('Position')}
</div>
</div>
<div className="section">
<div className="section-title">
<img height="18px" width="20px" src={rotationIcon} />
<span>Rotation</span>
</div>
<div className="section-subtitle"
data-tip="Camera rotation in IMU coordinate system, default facing to Z negative direction"
data-for="param">
Static
</div>
<div className="section-content">
{this.renderParamRow('StaticRotation')}
</div>
<div className="section-subtitle"
data-tip="IMU rotation in world coordinate system"
data-for="param">
Dynamic
</div>
<div className="section-content">
{this.renderParamRow('DynamicRotation')}
</div>
</div>
<ReactTooltip id="param" place="right" delayShow={300} multiline />
</div>
);
}
render() {
return (
<div className="monitor camera-param">
<div className="camera-param-header">
<div className="title">Camera Parameter</div>
<div className="actions">
<div className="action" onClick={this.toggleEditMode} data-tip="Edit"
data-for="action">
<EditSvg inEditMode={this.state.inEditMode}/>
</div>
<div className="action" onClick={this.resetParam} data-tip="Reset"
data-for="action">
<ResetSvg />
</div>
<ReactTooltip id="action" place="left" delayShow={100} />
</div>
</div>
{this.renderCameraParam()}
</div>
);
}
}
......@@ -11,6 +11,7 @@ import DataCollectionMonitor from "components/DataCollectionMonitor";
import SideBar from "components/SideBar";
import AudioCapture from "components/AudioCapture";
import { CameraVideo } from "components/Tasks/SensorCamera";
import CameraParam from "components/CameraParam";
import HOTKEYS_CONFIG from "store/config/hotkeys.yml";
import WS, { MAP_WS, POINT_CLOUD_WS, CAMERA_WS } from "store/websocket";
......@@ -70,7 +71,7 @@ export default class Dreamview extends React.Component {
}
render() {
const { isInitialized, dimension, sceneDimension, options, hmi } = this.props.store;
const { dimension, options, hmi } = this.props.store;
return (
<div>
......@@ -94,6 +95,7 @@ export default class Dreamview extends React.Component {
<CameraVideo />
</div>
}
{options.cameraAngle === 'CameraView' && <CameraParam />}
{options.showPNCMonitor && <PNCMonitor options={options} />}
{options.showDataCollectionMonitor &&
<DataCollectionMonitor
......
......@@ -10,7 +10,7 @@ import STORE from "store";
export default class Scene extends React.Component {
componentDidMount() {
RENDERER.initialize("canvas", this.props.width, this.props.height,
this.props.options);
this.props.options, this.props.store.cameraData);
}
componentWillUpdate(nextProps) {
......
......@@ -93,14 +93,11 @@ class Renderer {
// Geolocation of the mouse
this.geolocation = { x: 0, y: 0 };
this.localizationToCameraMatrix = new THREE.Matrix4();
this.localizationMatrix = new THREE.Matrix4();
this.imageSrcData = '';
}
initialize(canvasId, width, height, options) {
initialize(canvasId, width, height, options, cameraData) {
this.options = options;
this.cameraData = cameraData;
this.canvasId = canvasId;
// Camera
......@@ -275,28 +272,23 @@ class Renderer {
}
break;
case "CameraView": {
const cameraMatrixInWorld = new THREE.Matrix4();
cameraMatrixInWorld.multiplyMatrices(
this.localizationMatrix, this.localizationToCameraMatrix);
const { position, rotation } = this.cameraData.get();
const position = new THREE.Vector3();
const quaternion = new THREE.Quaternion();
const scale = new THREE.Vector3();
cameraMatrixInWorld.decompose(position, quaternion, scale);
const euler = new THREE.Euler().setFromQuaternion(quaternion);
const { x, y, z } = this.coordinates.applyOffset(position);
this.camera.position.set(x, y, z);
this.camera.position.set(position.x, position.y, position.z);
// Threejs camera is default facing towards to Z-axis negative direction,
// but the actual camera is looking at Z-axis positive direction. So we need
// to adjust the camera rotation considering the default camera orientation.
this.camera.rotation.set(euler.x + Math.PI, -euler.y, -euler.z);
this.camera.rotation.set(rotation.x + Math.PI, -rotation.y, -rotation.z);
this.controls.enabled = false;
const image = document.getElementById('camera-image');
if (image && this.imageSrcData) {
image.src = this.imageSrcData;
if (image && this.cameraData.imageSrcData) {
image.src = this.cameraData.imageSrcData;
}
break;
}
}
......@@ -530,25 +522,6 @@ class Renderer {
const names = intersects.map(intersect => intersect.object.name);
return names;
}
updateCameraData(data) {
if (data.image && data.image.length > 0) {
this.imageSrcData ='data:image/jpeg;base64,' +
new Buffer(data.image).toString('base64');
}
if (data.localization && this.coordinates.isInitialized()) {
// The translation parameters x/y/z is located at 12/13/14 respectively
const translation = this.coordinates.applyOffset({
x: data.localization[12], y: data.localization[13]});
data.localization[12] = translation.x;
data.localization[13] = translation.y;
data.localization[14] = 0;
this.localizationMatrix.fromArray(data.localization);
}
if (data.localization2cameraTf) {
this.localizationToCameraMatrix.fromArray(data.localization2cameraTf);
}
}
}
const RENDERER = new Renderer();
......
import { observable, action } from "mobx";
import * as THREE from "three";
export default class CameraData {
@observable initPosition = observable.map();
@observable deltaPosition = observable.map();
@observable initStaticRotation = observable.map();
@observable deltaStaticRotation = observable.map();
@observable initDynamicRotation = observable.map();
@observable deltaDynamicRotation = observable.map();
@observable imageSrcData = null;
constructor() {
['x', 'y', 'z'].forEach((axis) => {
this.initPosition.set(axis, 0);
this.deltaPosition.set(axis, 0);
this.initStaticRotation.set(axis, 0);
this.deltaStaticRotation.set(axis, 0);
this.initDynamicRotation.set(axis, 0);
this.deltaDynamicRotation.set(axis, 0);
});
}
getPositionAndRotationFromMatrix(matrix) {
const position = new THREE.Vector3();
const quaternion = new THREE.Quaternion();
const scale = new THREE.Vector3();
matrix.decompose(position, quaternion, scale);
const euler = new THREE.Euler().setFromQuaternion(quaternion);
return { position, rotation: euler };
}
// The init camera data is being updated per frame
@action init(data, coordinates) {
// Camera image
if (data.image && data.image.length > 0) {
this.imageSrcData = 'data:image/jpeg;base64,' + new Buffer(data.image).toString('base64');
}
// Camera dynamic transformation matrix: the dynamic localization matrix
const localizationMatrix = new THREE.Matrix4();
if (data.localization && coordinates.isInitialized()) {
// The translation parameters x/y/z is located at 12/13/14 respectively
const translation = coordinates.applyOffset({
x: data.localization[12], y: data.localization[13]});
data.localization[12] = translation.x;
data.localization[13] = translation.y;
data.localization[14] = 0;
localizationMatrix.fromArray(data.localization);
}
// Camera static transformation matrix: the matrix from localization to camera
const localizationToCameraMatrix = new THREE.Matrix4();
if (data.localization2cameraTf) {
localizationToCameraMatrix.fromArray(data.localization2cameraTf);
}
const cameraMatrixInWorld = new THREE.Matrix4();
cameraMatrixInWorld.multiplyMatrices(
localizationMatrix, localizationToCameraMatrix);
const initStaticTransform = this.getPositionAndRotationFromMatrix(
localizationToCameraMatrix);
const initDynamicTransform = this.getPositionAndRotationFromMatrix(localizationMatrix);
const initOverallTransform = this.getPositionAndRotationFromMatrix(cameraMatrixInWorld);
const geolocation = coordinates.applyOffset(initOverallTransform.position, true);
// For rotation, we need static and dynamic one respectively;
// for position, we only care about the overall position
['x', 'y', 'z'].forEach((axis) => {
this.initPosition.set(axis, geolocation[axis]);
this.initStaticRotation.set(axis, initStaticTransform.rotation[axis]);
this.initDynamicRotation.set(axis, initDynamicTransform.rotation[axis]);
});
}
// The delta camera data can be updated by manual input
@action update(type, key, value) {
const deltaMap = this[`delta${type}`];
if (deltaMap && deltaMap.has(key)) {
deltaMap.set(key, deltaMap.get(key) + value);
}
}
get() {
const position = {};
const staticRotation = {};
const dynamicRotation = {};
['x', 'y', 'z'].forEach((axis) => {
position[axis] = this.initPosition.get(axis) + this.deltaPosition.get(axis);
staticRotation[axis] = this.initStaticRotation.get(axis)
+ this.deltaStaticRotation.get(axis);
dynamicRotation[axis] = this.initDynamicRotation.get(axis)
+ this.deltaDynamicRotation.get(axis);
});
// Combine static and dynamic rotation to calculate overall rotation
const staticQuaternion = new THREE.Quaternion();
const staticEuler = new THREE.Euler(
staticRotation.x, staticRotation.y, staticRotation.z);
staticQuaternion.setFromEuler(staticEuler);
const dynamicQuaternion = new THREE.Quaternion();
const dynamicEuler = new THREE.Euler(
dynamicRotation.x, dynamicRotation.y, dynamicRotation.z);
dynamicQuaternion.setFromEuler(dynamicEuler);
const overallQuaternion = new THREE.Quaternion();
overallQuaternion.multiplyQuaternions(dynamicQuaternion, staticQuaternion);
const rotation = new THREE.Euler().setFromQuaternion(overallQuaternion);
return { position, rotation };
}
@action reset() {
['x', 'y', 'z'].forEach((axis) => {
this.deltaPosition.set(axis, 0);
this.deltaStaticRotation.set(axis, 0);
this.deltaDynamicRotation.set(axis, 0);
});
}
}
\ No newline at end of file
......@@ -10,6 +10,7 @@ import PlanningData from "store/planning_data";
import Playback from "store/playback";
import RouteEditingManager from "store/route_editing_manager";
import TrafficSignal from "store/traffic_signal";
import CameraData from "store/camera_data";
class DreamviewStore {
// Mutable States
......@@ -52,6 +53,8 @@ class DreamviewStore {
@observable moduleDelay = observable.map();
@observable cameraData = new CameraData();
@observable newDisengagementReminder = false;
@observable offlineViewErrorMsg = null;
......
......@@ -61,7 +61,8 @@ export default class Options {
}
@computed get showMonitor() {
return this.showPNCMonitor || this.showDataCollectionMonitor;
return this.showPNCMonitor || this.showDataCollectionMonitor
|| this.cameraAngle === 'CameraView';
}
@action toggle(option, isCustomized) {
......
......@@ -32,7 +32,7 @@ export default class CameraDataWebSocketEndpoint {
switch (message.type) {
case "CameraData":
if (message) {
RENDERER.updateCameraData(message);
STORE.cameraData.init(message, RENDERER.coordinates);
}
break;
default:
......
......@@ -425,6 +425,92 @@ body {
}
}
}
.camera-param {
overflow: auto;
user-select: none;
.camera-param-header {
min-width: 260px;
background: #2A3238;
color: #FFFFFF;
padding: 6px 12px;
border-bottom: 1px solid #000000;
display: flex;
height: 22px;
.title {
flex-grow: 1;
margin: auto;
}
.actions {
display: flex;
.action {
flex: 1 1 auto;
text-align: center;
cursor: pointer;
padding: 2px;
width: 24px;
svg:hover {
fill: #FFFFFF;
}
}
}
}
.camera-param-content {
display: flex;
min-width: 260px;
flex-direction: column;
.section {
padding: 5px 10px 5px 10px;
.section-title {
margin-bottom: 5px;
padding: 5px;
display: flex;
span {
margin-left: 10px;
margin-top: 2px;
}
}
.section-subtitle {
padding-bottom: 2px;
display: inline-block;
border-bottom: 1px solid #999999;
margin-bottom: 5px;
margin-left: 10px;
}
.section-content {
padding: 10px 10px;
}
.section-content-row {
display: flex;
padding-bottom: 5px;
height: 24px;
.field {
width: 80px;
opacity: 0.6;
}
.value {
flex-grow: 1;
min-width: 100px;
}
.delta {
width: 30%;
}
.action {
width: 30px;
display: flex;
flex-direction: column;
svg {
cursor: pointer;
&:hover {
fill: #FFFFFF;
}
}
}
}
}
}
}
}
.SplitPane {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册