未验证 提交 2c690eab 编写于 作者: W Weide Zhang 提交者: GitHub

Dreamview: fix synchronized point cloud rendering in dreamview (#11105)

* fix synchronized point cloud rendering in dreamview
1. synchronize timestamp when simulation world pushes to frontend
2. eliminate front end point cloud timer trigger
3. more smoother visualization

* address code review comments
1. restore old point cloud send logic
2. style fix
上级 cab60ea2
......@@ -56,9 +56,13 @@ Status Dreamview::Init() {
// Initialize and run the web server which serves the dreamview htmls and
// javascripts and handles websocket requests.
std::vector<std::string> options = {
"document_root", FLAGS_static_file_dir, "listening_ports",
FLAGS_server_ports, "websocket_timeout_ms", FLAGS_websocket_timeout_ms,
"request_timeout_ms", FLAGS_request_timeout_ms};
"document_root", FLAGS_static_file_dir,
"listening_ports", FLAGS_server_ports,
"websocket_timeout_ms", FLAGS_websocket_timeout_ms,
"request_timeout_ms", FLAGS_request_timeout_ms,
"enable_keep_alive", "yes",
"tcp_nodelay", "1",
"keep_alive_timeout_ms", "500"};
if (PathExists(FLAGS_ssl_certificate)) {
options.push_back("ssl_certificate");
options.push_back(FLAGS_ssl_certificate);
......@@ -84,7 +88,8 @@ Status Dreamview::Init() {
websocket_.get(), map_ws_.get(), camera_ws_.get(), sim_control_.get(),
map_service_.get(), data_collection_monitor_.get(),
perception_camera_updater_.get(), FLAGS_routing_from_file));
point_cloud_updater_.reset(new PointCloudUpdater(point_cloud_ws_.get()));
point_cloud_updater_.reset(
new PointCloudUpdater(point_cloud_ws_.get(), sim_world_updater_.get()));
hmi_.reset(new HMI(websocket_.get(), map_service_.get(),
data_collection_monitor_.get()));
......
......@@ -12,6 +12,7 @@ cc_library(
"//modules/common/math",
"//modules/dreamview/backend/common:dreamview_gflags",
"//modules/dreamview/backend/handlers:websocket_handler",
"//modules/dreamview/backend/simulation_world:simulation_world_updater",
"//modules/dreamview/proto:point_cloud_proto",
"//modules/drivers/proto:sensor_proto",
"//modules/localization/proto:localization_proto",
......
......@@ -37,11 +37,13 @@ using Json = nlohmann::json;
float PointCloudUpdater::lidar_height_ = kDefaultLidarHeight;
boost::shared_mutex PointCloudUpdater::mutex_;
PointCloudUpdater::PointCloudUpdater(WebSocketHandler *websocket)
PointCloudUpdater::PointCloudUpdater(WebSocketHandler *websocket,
SimulationWorldUpdater *simworld_updater)
: node_(cyber::CreateNode("point_cloud")),
websocket_(websocket),
point_cloud_str_(""),
future_ready_(true) {
future_ready_(true),
simworld_updater_(simworld_updater) {
RegisterMessageHandlers();
}
......@@ -138,53 +140,78 @@ void PointCloudUpdater::Stop() {
}
}
pcl::PointCloud<pcl::PointXYZ>::Ptr PointCloudUpdater::ConvertPCLPointCloud(
const std::shared_ptr<drivers::PointCloud> &point_cloud) {
pcl::PointCloud<pcl::PointXYZ>::Ptr pcl_ptr(
new pcl::PointCloud<pcl::PointXYZ>);
pcl_ptr->width = point_cloud->width();
pcl_ptr->height = point_cloud->height();
pcl_ptr->is_dense = false;
if (point_cloud->width() * point_cloud->height() !=
static_cast<unsigned int>(point_cloud->point_size())) {
pcl_ptr->width = 1;
pcl_ptr->height = point_cloud->point_size();
}
pcl_ptr->points.resize(point_cloud->point_size());
for (size_t i = 0; i < pcl_ptr->points.size(); ++i) {
const auto &point = point_cloud->point(static_cast<int>(i));
pcl_ptr->points[i].x = point.x();
pcl_ptr->points[i].y = point.y();
pcl_ptr->points[i].z = point.z();
}
return pcl_ptr;
}
void PointCloudUpdater::UpdatePointCloud(
const std::shared_ptr<drivers::PointCloud> &point_cloud) {
if (!enabled_) {
return;
}
last_point_cloud_time_ = point_cloud->header().timestamp_sec();
if (simworld_updater_->LastAdcTimestampSec() == 0.0 ||
simworld_updater_->LastAdcTimestampSec() - last_point_cloud_time_ > 0.1) {
AWARN << "skipping outdated point cloud data";
return;
}
pcl::PointCloud<pcl::PointXYZ>::Ptr pcl_ptr;
// Check if last filter process has finished before processing new data.
if (future_ready_) {
future_ready_ = false;
// transform from drivers::PointCloud to pcl::PointCloud
pcl::PointCloud<pcl::PointXYZ>::Ptr pcl_ptr(
new pcl::PointCloud<pcl::PointXYZ>);
pcl_ptr->width = point_cloud->width();
pcl_ptr->height = point_cloud->height();
pcl_ptr->is_dense = false;
if (point_cloud->width() * point_cloud->height() !=
static_cast<unsigned int>(point_cloud->point_size())) {
pcl_ptr->width = 1;
pcl_ptr->height = point_cloud->point_size();
}
pcl_ptr->points.resize(point_cloud->point_size());
for (size_t i = 0; i < pcl_ptr->points.size(); ++i) {
const auto &point = point_cloud->point(static_cast<int>(i));
pcl_ptr->points[i].x = point.x();
pcl_ptr->points[i].y = point.y();
pcl_ptr->points[i].z = point.z();
if (enable_voxel_filter_) {
if (future_ready_) {
future_ready_ = false;
// transform from drivers::PointCloud to pcl::PointCloud
pcl_ptr = ConvertPCLPointCloud(point_cloud);
std::future<void> f =
cyber::Async(&PointCloudUpdater::FilterPointCloud, this, pcl_ptr);
async_future_ = std::move(f);
}
std::future<void> f =
cyber::Async(&PointCloudUpdater::FilterPointCloud, this, pcl_ptr);
async_future_ = std::move(f);
} else {
pcl_ptr = ConvertPCLPointCloud(point_cloud);
this->FilterPointCloud(pcl_ptr);
}
}
void PointCloudUpdater::FilterPointCloud(
pcl::PointCloud<pcl::PointXYZ>::Ptr pcl_ptr) {
pcl::VoxelGrid<pcl::PointXYZ> voxel_grid;
voxel_grid.setInputCloud(pcl_ptr);
voxel_grid.setLeafSize(static_cast<float>(FLAGS_voxel_filter_size),
static_cast<float>(FLAGS_voxel_filter_size),
static_cast<float>(FLAGS_voxel_filter_height));
pcl::PointCloud<pcl::PointXYZ>::Ptr pcl_filtered_ptr(
new pcl::PointCloud<pcl::PointXYZ>);
voxel_grid.filter(*pcl_filtered_ptr);
AINFO << "filtered point cloud data size: " << pcl_filtered_ptr->size();
/*
By default, disable voxel filter since it's taking more than 500ms
ideally the most efficient sampling method is to
use per beam random sample for organized cloud(TODO)
*/
if (enable_voxel_filter_) {
pcl::VoxelGrid<pcl::PointXYZ> voxel_grid;
voxel_grid.setInputCloud(pcl_ptr);
voxel_grid.setLeafSize(static_cast<float>(FLAGS_voxel_filter_size),
static_cast<float>(FLAGS_voxel_filter_size),
static_cast<float>(FLAGS_voxel_filter_height));
voxel_grid.filter(*pcl_filtered_ptr);
} else {
pcl_filtered_ptr = pcl_ptr;
}
float z_offset;
{
......@@ -208,9 +235,8 @@ void PointCloudUpdater::FilterPointCloud(
}
void PointCloudUpdater::UpdateLocalizationTime(
const std::shared_ptr<LocalizationEstimate> &localization) {
last_localization_time_ = localization->header().timestamp_sec();
const std::shared_ptr<LocalizationEstimate> &localization) {
last_localization_time_ = localization->header().timestamp_sec();
}
} // namespace dreamview
} // namespace apollo
......@@ -29,6 +29,7 @@
#include "cyber/cyber.h"
#include "modules/common/util/string_util.h"
#include "modules/dreamview/backend/handlers/websocket_handler.h"
#include "modules/dreamview/backend/simulation_world/simulation_world_updater.h"
#include "modules/drivers/proto/pointcloud.pb.h"
#include "modules/localization/proto/localization.pb.h"
#include "pcl/point_cloud.h"
......@@ -52,8 +53,11 @@ class PointCloudUpdater {
* @brief Constructor with the websocket handler.
* @param websocket Pointer of the websocket handler that has been attached to
* the server.
* @param simulationworldupdater pointer
*/
explicit PointCloudUpdater(WebSocketHandler *websocket);
explicit PointCloudUpdater(WebSocketHandler *websocket,
SimulationWorldUpdater *sim_world_updater);
~PointCloudUpdater();
static void LoadLidarHeight(const std::string &file_path);
......@@ -82,6 +86,8 @@ class PointCloudUpdater {
void UpdateLocalizationTime(
const std::shared_ptr<apollo::localization::LocalizationEstimate>
&localization);
pcl::PointCloud<pcl::PointXYZ>::Ptr ConvertPCLPointCloud(
const std::shared_ptr<drivers::PointCloud> &point_cloud);
constexpr static float kDefaultLidarHeight = 1.91f;
......@@ -101,10 +107,10 @@ class PointCloudUpdater {
std::shared_ptr<cyber::Reader<apollo::localization::LocalizationEstimate>>
localization_reader_;
std::shared_ptr<cyber::Reader<drivers::PointCloud>> point_cloud_reader_;
double last_point_cloud_time_ = 0.0;
double last_localization_time_ = 0.0;
SimulationWorldUpdater *simworld_updater_;
bool enable_voxel_filter_ = false;
};
} // namespace dreamview
} // namespace apollo
......@@ -461,7 +461,6 @@ void SimulationWorldService::UpdateSimulationWorld(
// message header. It is done on both the SimulationWorld object
// itself and its auto_driving_car() field.
auto_driving_car->set_timestamp_sec(localization.header().timestamp_sec());
ready_to_push_.store(true);
}
......
......@@ -412,6 +412,8 @@ void SimulationWorldUpdater::OnTimer() {
{
boost::unique_lock<boost::shared_mutex> writer_lock(mutex_);
last_pushed_adc_timestamp_sec_ =
sim_world_service_.world().auto_driving_car().timestamp_sec();
sim_world_service_.GetWireFormatString(
FLAGS_sim_map_radius, &simulation_world_,
&simulation_world_with_planning_data_);
......
......@@ -77,6 +77,10 @@ class SimulationWorldUpdater {
// frontend.
static constexpr double kSimWorldTimeIntervalMs = 100;
double LastAdcTimestampSec() {
return last_pushed_adc_timestamp_sec_;
}
private:
/**
* @brief The callback function to get updates from SimulationWorldService,
......@@ -138,6 +142,8 @@ class SimulationWorldUpdater {
boost::shared_mutex mutex_;
std::unique_ptr<cyber::Timer> timer_;
volatile double last_pushed_adc_timestamp_sec_ = 0.0f;
};
} // namespace dreamview
......
(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{468:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=m(a(3)),l=m(a(1)),i=m(a(2)),o=m(a(4)),r=m(a(5)),d=m(a(0)),u=m(a(109)),c=m(a(20)),f=a(177),s=m(a(469)),p=m(a(470));function m(e){return e&&e.__esModule?e:{default:e}}var v=function(e){function t(e){(0,l.default)(this,t);var a=(0,o.default)(this,(t.__proto__||(0,n.default)(t)).call(this,e));if(a.scriptOnLoadHandler=a.scriptOnLoadHandler.bind(a),!u.default.mapAPILoaded){var i=function(){console.log("Map API script loaded.")};"BaiduMap"===PARAMETERS.navigation.map?window.initMap=a.scriptOnLoadHandler:"GoogleMap"===PARAMETERS.navigation.map&&(i=a.scriptOnLoadHandler),(0,s.default)({url:PARAMETERS.navigation.mapAPiUrl,onLoad:i,onError:function(){console.log("Failed to load map api")}})}return a}return(0,r.default)(t,e),(0,i.default)(t,[{key:"componentDidMount",value:function(){u.default.mapAPILoaded&&this.scriptOnLoadHandler()}},{key:"componentDidUpdate",value:function(){var e=this.props,t=e.hasRoutingControls,a=e.size;t&&a===f.MAP_SIZE.FULL?u.default.enableControls():u.default.disableControls()}},{key:"scriptOnLoadHandler",value:function(){a(471)("./"+PARAMETERS.navigation.map+"Adapter").then((function(e){var t=new(0,e.default);u.default.mapAPILoaded=!0,u.default.initialize(c.default,t),u.default.disableControls()}))}},{key:"componentWillUnmount",value:function(){u.default.reset()}},{key:"render",value:function(){var e=this.props,t=e.width,a=e.height,n=e.size,l=e.onResize;return["GoogleMap","BaiduMap"].includes(PARAMETERS.navigation.map)?d.default.createElement("div",{displayname:"navigation",className:"navigation-view",style:{width:t,height:a}},d.default.createElement("div",{id:"map_canvas"}),d.default.createElement(p.default,{type:n,onClick:l})):(console.error("Map API "+PARAMETERS.navigation.map+" is not supported."),null)}}]),t}(d.default.Component);t.default=v},469: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,l=document.createElement("script");l.src=t,l.type="text/javascript",l.async=!0,l.onload=a,l.onerror=n,document.body.appendChild(l)}},470:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=c(a(3)),l=c(a(1)),i=c(a(2)),o=c(a(4)),r=c(a(5)),d=c(a(0)),u=a(177);function c(e){return e&&e.__esModule?e:{default:e}}var f=function(e){function t(){return(0,l.default)(this,t),(0,o.default)(this,(t.__proto__||(0,n.default)(t)).apply(this,arguments))}return(0,r.default)(t,e),(0,i.default)(t,[{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:"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:".8",fill:"#84b7FF"}),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:"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:"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:".8",fill:"#84b7FF"}),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 u.MAP_SIZE.FULL:n=this.getMinimizingIcon();break;case u.MAP_SIZE.DEFAULT:n=this.getMaximizingIcon();break;default:console.error("Unknown window size found:",t)}return d.default.createElement("div",{className:"window-resize-control",onClick:a},n)}}]),t}(d.default.PureComponent);t.default=f},471:function(e,t,a){var n={"./BaiduMapAdapter":[472,3],"./GoogleMapAdapter":[473,4]};function l(e){var t=n[e];return t?a.e(t[1]).then((function(){var e=t[0];return a.t(e,7)})):Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}))}l.keys=function(){return Object.keys(n)},l.id=471,e.exports=l}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{481:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=m(a(3)),l=m(a(1)),i=m(a(2)),o=m(a(4)),r=m(a(5)),d=m(a(0)),u=m(a(109)),c=m(a(20)),f=a(179),s=m(a(482)),p=m(a(483));function m(e){return e&&e.__esModule?e:{default:e}}var v=function(e){function t(e){(0,l.default)(this,t);var a=(0,o.default)(this,(t.__proto__||(0,n.default)(t)).call(this,e));if(a.scriptOnLoadHandler=a.scriptOnLoadHandler.bind(a),!u.default.mapAPILoaded){var i=function(){console.log("Map API script loaded.")};"BaiduMap"===PARAMETERS.navigation.map?window.initMap=a.scriptOnLoadHandler:"GoogleMap"===PARAMETERS.navigation.map&&(i=a.scriptOnLoadHandler),(0,s.default)({url:PARAMETERS.navigation.mapAPiUrl,onLoad:i,onError:function(){console.log("Failed to load map api")}})}return a}return(0,r.default)(t,e),(0,i.default)(t,[{key:"componentDidMount",value:function(){u.default.mapAPILoaded&&this.scriptOnLoadHandler()}},{key:"componentDidUpdate",value:function(){var e=this.props,t=e.hasRoutingControls,a=e.size;t&&a===f.MAP_SIZE.FULL?u.default.enableControls():u.default.disableControls()}},{key:"scriptOnLoadHandler",value:function(){a(484)("./"+PARAMETERS.navigation.map+"Adapter").then((function(e){var t=new(0,e.default);u.default.mapAPILoaded=!0,u.default.initialize(c.default,t),u.default.disableControls()}))}},{key:"componentWillUnmount",value:function(){u.default.reset()}},{key:"render",value:function(){var e=this.props,t=e.width,a=e.height,n=e.size,l=e.onResize;return["GoogleMap","BaiduMap"].includes(PARAMETERS.navigation.map)?d.default.createElement("div",{displayname:"navigation",className:"navigation-view",style:{width:t,height:a}},d.default.createElement("div",{id:"map_canvas"}),d.default.createElement(p.default,{type:n,onClick:l})):(console.error("Map API "+PARAMETERS.navigation.map+" is not supported."),null)}}]),t}(d.default.Component);t.default=v},482: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,l=document.createElement("script");l.src=t,l.type="text/javascript",l.async=!0,l.onload=a,l.onerror=n,document.body.appendChild(l)}},483:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=c(a(3)),l=c(a(1)),i=c(a(2)),o=c(a(4)),r=c(a(5)),d=c(a(0)),u=a(179);function c(e){return e&&e.__esModule?e:{default:e}}var f=function(e){function t(){return(0,l.default)(this,t),(0,o.default)(this,(t.__proto__||(0,n.default)(t)).apply(this,arguments))}return(0,r.default)(t,e),(0,i.default)(t,[{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:"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:".8",fill:"#84b7FF"}),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:"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:"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:".8",fill:"#84b7FF"}),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 u.MAP_SIZE.FULL:n=this.getMinimizingIcon();break;case u.MAP_SIZE.DEFAULT:n=this.getMaximizingIcon();break;default:console.error("Unknown window size found:",t)}return d.default.createElement("div",{className:"window-resize-control",onClick:a},n)}}]),t}(d.default.PureComponent);t.default=f},484:function(e,t,a){var n={"./BaiduMapAdapter":[485,3],"./GoogleMapAdapter":[486,4]};function l(e){var t=n[e];return t?a.e(t[1]).then((function(){var e=t[0];return a.t(e,7)})):Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}))}l.keys=function(){return Object.keys(n)},l.id=484,e.exports=l}}]);
//# 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],{468:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=m(a(3)),l=m(a(1)),i=m(a(2)),o=m(a(4)),r=m(a(5)),d=m(a(0)),u=m(a(109)),c=m(a(20)),f=a(177),s=m(a(469)),p=m(a(470));function m(e){return e&&e.__esModule?e:{default:e}}var v=function(e){function t(e){(0,l.default)(this,t);var a=(0,o.default)(this,(t.__proto__||(0,n.default)(t)).call(this,e));if(a.scriptOnLoadHandler=a.scriptOnLoadHandler.bind(a),!u.default.mapAPILoaded){var i=function(){console.log(\"Map API script loaded.\")};\"BaiduMap\"===PARAMETERS.navigation.map?window.initMap=a.scriptOnLoadHandler:\"GoogleMap\"===PARAMETERS.navigation.map&&(i=a.scriptOnLoadHandler),(0,s.default)({url:PARAMETERS.navigation.mapAPiUrl,onLoad:i,onError:function(){console.log(\"Failed to load map api\")}})}return a}return(0,r.default)(t,e),(0,i.default)(t,[{key:\"componentDidMount\",value:function(){u.default.mapAPILoaded&&this.scriptOnLoadHandler()}},{key:\"componentDidUpdate\",value:function(){var e=this.props,t=e.hasRoutingControls,a=e.size;t&&a===f.MAP_SIZE.FULL?u.default.enableControls():u.default.disableControls()}},{key:\"scriptOnLoadHandler\",value:function(){a(471)(\"./\"+PARAMETERS.navigation.map+\"Adapter\").then((function(e){var t=new(0,e.default);u.default.mapAPILoaded=!0,u.default.initialize(c.default,t),u.default.disableControls()}))}},{key:\"componentWillUnmount\",value:function(){u.default.reset()}},{key:\"render\",value:function(){var e=this.props,t=e.width,a=e.height,n=e.size,l=e.onResize;return[\"GoogleMap\",\"BaiduMap\"].includes(PARAMETERS.navigation.map)?d.default.createElement(\"div\",{displayname:\"navigation\",className:\"navigation-view\",style:{width:t,height:a}},d.default.createElement(\"div\",{id:\"map_canvas\"}),d.default.createElement(p.default,{type:n,onClick:l})):(console.error(\"Map API \"+PARAMETERS.navigation.map+\" is not supported.\"),null)}}]),t}(d.default.Component);t.default=v},469: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,l=document.createElement(\"script\");l.src=t,l.type=\"text/javascript\",l.async=!0,l.onload=a,l.onerror=n,document.body.appendChild(l)}},470:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=c(a(3)),l=c(a(1)),i=c(a(2)),o=c(a(4)),r=c(a(5)),d=c(a(0)),u=a(177);function c(e){return e&&e.__esModule?e:{default:e}}var f=function(e){function t(){return(0,l.default)(this,t),(0,o.default)(this,(t.__proto__||(0,n.default)(t)).apply(this,arguments))}return(0,r.default)(t,e),(0,i.default)(t,[{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:\"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:\".8\",fill:\"#84b7FF\"}),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:\"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:\"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:\".8\",fill:\"#84b7FF\"}),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 u.MAP_SIZE.FULL:n=this.getMinimizingIcon();break;case u.MAP_SIZE.DEFAULT:n=this.getMaximizingIcon();break;default:console.error(\"Unknown window size found:\",t)}return d.default.createElement(\"div\",{className:\"window-resize-control\",onClick:a},n)}}]),t}(d.default.PureComponent);t.default=f},471:function(e,t,a){var n={\"./BaiduMapAdapter\":[472,3],\"./GoogleMapAdapter\":[473,4]};function l(e){var t=n[e];return t?a.e(t[1]).then((function(){var e=t[0];return a.t(e,7)})):Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}l.keys=function(){return Object.keys(n)},l.id=471,e.exports=l}}]);"],"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],{481:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=m(a(3)),l=m(a(1)),i=m(a(2)),o=m(a(4)),r=m(a(5)),d=m(a(0)),u=m(a(109)),c=m(a(20)),f=a(179),s=m(a(482)),p=m(a(483));function m(e){return e&&e.__esModule?e:{default:e}}var v=function(e){function t(e){(0,l.default)(this,t);var a=(0,o.default)(this,(t.__proto__||(0,n.default)(t)).call(this,e));if(a.scriptOnLoadHandler=a.scriptOnLoadHandler.bind(a),!u.default.mapAPILoaded){var i=function(){console.log(\"Map API script loaded.\")};\"BaiduMap\"===PARAMETERS.navigation.map?window.initMap=a.scriptOnLoadHandler:\"GoogleMap\"===PARAMETERS.navigation.map&&(i=a.scriptOnLoadHandler),(0,s.default)({url:PARAMETERS.navigation.mapAPiUrl,onLoad:i,onError:function(){console.log(\"Failed to load map api\")}})}return a}return(0,r.default)(t,e),(0,i.default)(t,[{key:\"componentDidMount\",value:function(){u.default.mapAPILoaded&&this.scriptOnLoadHandler()}},{key:\"componentDidUpdate\",value:function(){var e=this.props,t=e.hasRoutingControls,a=e.size;t&&a===f.MAP_SIZE.FULL?u.default.enableControls():u.default.disableControls()}},{key:\"scriptOnLoadHandler\",value:function(){a(484)(\"./\"+PARAMETERS.navigation.map+\"Adapter\").then((function(e){var t=new(0,e.default);u.default.mapAPILoaded=!0,u.default.initialize(c.default,t),u.default.disableControls()}))}},{key:\"componentWillUnmount\",value:function(){u.default.reset()}},{key:\"render\",value:function(){var e=this.props,t=e.width,a=e.height,n=e.size,l=e.onResize;return[\"GoogleMap\",\"BaiduMap\"].includes(PARAMETERS.navigation.map)?d.default.createElement(\"div\",{displayname:\"navigation\",className:\"navigation-view\",style:{width:t,height:a}},d.default.createElement(\"div\",{id:\"map_canvas\"}),d.default.createElement(p.default,{type:n,onClick:l})):(console.error(\"Map API \"+PARAMETERS.navigation.map+\" is not supported.\"),null)}}]),t}(d.default.Component);t.default=v},482: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,l=document.createElement(\"script\");l.src=t,l.type=\"text/javascript\",l.async=!0,l.onload=a,l.onerror=n,document.body.appendChild(l)}},483:function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=c(a(3)),l=c(a(1)),i=c(a(2)),o=c(a(4)),r=c(a(5)),d=c(a(0)),u=a(179);function c(e){return e&&e.__esModule?e:{default:e}}var f=function(e){function t(){return(0,l.default)(this,t),(0,o.default)(this,(t.__proto__||(0,n.default)(t)).apply(this,arguments))}return(0,r.default)(t,e),(0,i.default)(t,[{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:\"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:\".8\",fill:\"#84b7FF\"}),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:\"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:\"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:\".8\",fill:\"#84b7FF\"}),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 u.MAP_SIZE.FULL:n=this.getMinimizingIcon();break;case u.MAP_SIZE.DEFAULT:n=this.getMaximizingIcon();break;default:console.error(\"Unknown window size found:\",t)}return d.default.createElement(\"div\",{className:\"window-resize-control\",onClick:a},n)}}]),t}(d.default.PureComponent);t.default=f},484:function(e,t,a){var n={\"./BaiduMapAdapter\":[485,3],\"./GoogleMapAdapter\":[486,4]};function l(e){var t=n[e];return t?a.e(t[1]).then((function(){var e=t[0];return a.t(e,7)})):Promise.resolve().then((function(){var t=new Error(\"Cannot find module '\"+e+\"'\");throw t.code=\"MODULE_NOT_FOUND\",t}))}l.keys=function(){return Object.keys(n)},l.id=484,e.exports=l}}]);"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{472:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=c(n(3)),o=c(n(4)),i=c(n(5)),l=c(n(36)),r=c(n(23)),s=c(n(1)),u=c(n(2)),d=n(176);function c(e){return e&&e.__esModule?e:{default:e}}var p=function(){function e(){(0,s.default)(this,e),this.map=null,this.controls=[],this.initializedCenter=!1}return(0,u.default)(e,[{key:"isInitialized",value:function(){return null!==this.map&&(0,r.default)(this.map).length>0}},{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 f(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,d.WGS84ToBD09LL)(n,a)}}]),e}();t.default=p;var f=function(e){function t(e,n,i,l,r){var u;(0,s.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=r,f.title=n,f.text=e,f.backgroundColor=i,f}return(0,i.default)(t,e),(0,u.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],{485:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=c(n(3)),o=c(n(4)),i=c(n(5)),l=c(n(36)),r=c(n(23)),s=c(n(1)),u=c(n(2)),d=n(178);function c(e){return e&&e.__esModule?e:{default:e}}var p=function(){function e(){(0,s.default)(this,e),this.map=null,this.controls=[],this.initializedCenter=!1}return(0,u.default)(e,[{key:"isInitialized",value:function(){return null!==this.map&&(0,r.default)(this.map).length>0}},{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 f(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,d.WGS84ToBD09LL)(n,a)}}]),e}();t.default=p;var f=function(e){function t(e,n,i,l,r){var u;(0,s.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=r,f.title=n,f.text=e,f.backgroundColor=i,f}return(0,i.default)(t,e),(0,u.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],{472:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var a=c(n(3)),o=c(n(4)),i=c(n(5)),l=c(n(36)),r=c(n(23)),s=c(n(1)),u=c(n(2)),d=n(176);function c(e){return e&&e.__esModule?e:{default:e}}var p=function(){function e(){(0,s.default)(this,e),this.map=null,this.controls=[],this.initializedCenter=!1}return(0,u.default)(e,[{key:\"isInitialized\",value:function(){return null!==this.map&&(0,r.default)(this.map).length>0}},{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 f(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,d.WGS84ToBD09LL)(n,a)}}]),e}();t.default=p;var f=function(e){function t(e,n,i,l,r){var u;(0,s.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=r,f.title=n,f.text=e,f.backgroundColor=i,f}return(0,i.default)(t,e),(0,u.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],{485:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var a=c(n(3)),o=c(n(4)),i=c(n(5)),l=c(n(36)),r=c(n(23)),s=c(n(1)),u=c(n(2)),d=n(178);function c(e){return e&&e.__esModule?e:{default:e}}var p=function(){function e(){(0,s.default)(this,e),this.map=null,this.controls=[],this.initializedCenter=!1}return(0,u.default)(e,[{key:\"isInitialized\",value:function(){return null!==this.map&&(0,r.default)(this.map).length>0}},{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 f(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,d.WGS84ToBD09LL)(n,a)}}]),e}();t.default=p;var f=function(e){function t(e,n,i,l,r){var u;(0,s.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=r,f.title=n,f.text=e,f.backgroundColor=i,f}return(0,i.default)(t,e),(0,u.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],{473:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(36)),l=r(n(1)),a=r(n(2)),i=n(176);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],{486:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(36)),l=r(n(1)),a=r(n(2)),i=n(178);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],{473:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var o=r(n(36)),l=r(n(1)),a=r(n(2)),i=n(176);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],{486:function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var o=r(n(36)),l=r(n(1)),a=r(n(2)),i=n(178);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
!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=465)}({465: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=478)}({478: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=465)}({465: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=478)}({478:function(e,t){e.exports='module.exports = __webpack_public_path__ + \"parameters.json\";'}});"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
......@@ -4210,76 +4210,55 @@
},
"ChassisFeature": {
"fields": {
"messageTimestampSec": {
"type": "double",
"id": 1
},
"speedMps": {
"type": "float",
"id": 1
"id": 2
},
"throttlePercentage": {
"type": "float",
"id": 2
"id": 3
},
"brakePercentage": {
"type": "float",
"id": 3
"id": 4
},
"steeringPercentage": {
"type": "float",
"id": 4
"id": 5
},
"gearLocation": {
"type": "apollo.canbus.Chassis.GearPosition",
"id": 5
"id": 6
}
}
},
"LocalizationFeature": {
"fields": {
"position": {
"type": "apollo.common.PointENU",
"id": 1
},
"heading": {
"type": "double",
"id": 2
},
"linearVelocity": {
"type": "apollo.common.Point3D",
"id": 3
},
"linearAcceleration": {
"type": "apollo.common.Point3D",
"id": 4
},
"angularVelocity": {
"type": "apollo.common.Point3D",
"id": 5
}
}
},
"PerceptionObstacleFeature": {
"fields": {
"timestampSec": {
"messageTimestampSec": {
"type": "double",
"id": 1
},
"position": {
"type": "apollo.common.Point3D",
"type": "apollo.common.PointENU",
"id": 2
},
"theta": {
"heading": {
"type": "double",
"id": 3
},
"velocity": {
"linearVelocity": {
"type": "apollo.common.Point3D",
"id": 4
},
"acceleration": {
"linearAcceleration": {
"type": "apollo.common.Point3D",
"id": 5
},
"polygonPoint": {
"rule": "repeated",
"angularVelocity": {
"type": "apollo.common.Point3D",
"id": 6
}
......@@ -4337,6 +4316,61 @@
}
}
},
"TrajectoryPoint": {
"fields": {
"timestampSec": {
"type": "double",
"id": 1
},
"trajectoryPoint": {
"type": "TrajectoryPointFeature",
"id": 2
}
}
},
"PerceptionObstacleFeature": {
"fields": {
"timestampSec": {
"type": "double",
"id": 1
},
"position": {
"type": "apollo.common.Point3D",
"id": 2
},
"theta": {
"type": "double",
"id": 3
},
"velocity": {
"type": "apollo.common.Point3D",
"id": 4
},
"acceleration": {
"type": "apollo.common.Point3D",
"id": 5
},
"polygonPoint": {
"rule": "repeated",
"type": "apollo.common.Point3D",
"id": 6
}
}
},
"ObstacleTrajectoryFeature": {
"fields": {
"perceptionObstacleHistory": {
"rule": "repeated",
"type": "PerceptionObstacleFeature",
"id": 1
},
"evaluatedTrajectoryPoint": {
"rule": "repeated",
"type": "TrajectoryPoint",
"id": 2
}
}
},
"PredictionTrajectoryFeature": {
"fields": {
"probability": {
......@@ -4345,7 +4379,7 @@
},
"trajectoryPoint": {
"rule": "repeated",
"type": "TrajectoryPointFeature",
"type": "TrajectoryPoint",
"id": 2
}
}
......@@ -4404,9 +4438,8 @@
"type": "apollo.perception.PerceptionObstacle.Type",
"id": 5
},
"obstacleTrajectoryPoint": {
"rule": "repeated",
"type": "PerceptionObstacleFeature",
"obstacleTrajectory": {
"type": "ObstacleTrajectoryFeature",
"id": 6
},
"obstaclePrediction": {
......@@ -4431,12 +4464,44 @@
},
"TrafficLightFeature": {
"fields": {
"color": {
"type": "apollo.perception.TrafficLight.Color",
"id": 1
},
"id": {
"type": "string",
"id": 2
},
"confidence": {
"type": "double",
"id": 3,
"options": {
"default": 1
}
},
"trackingTime": {
"type": "double",
"id": 4
},
"blink": {
"type": "bool",
"id": 5
},
"remainingTime": {
"type": "double",
"id": 6
}
}
},
"TrafficLightDetectionFeature": {
"fields": {
"messageTimestampSec": {
"type": "double",
"id": 1
},
"color": {
"type": "apollo.perception.TrafficLight.Color",
"trafficLight": {
"rule": "repeated",
"type": "TrafficLightFeature",
"id": 2
}
}
......@@ -4452,7 +4517,7 @@
"id": 2
},
"trajectoryPoint": {
"type": "apollo.common.TrajectoryPoint",
"type": "TrajectoryPointFeature",
"id": 3
}
}
......@@ -4468,7 +4533,7 @@
},
"LearningDataFrame": {
"fields": {
"timestampSec": {
"messageTimestampSec": {
"type": "double",
"id": 1
},
......@@ -4501,9 +4566,8 @@
"type": "RoutingFeature",
"id": 8
},
"trafficLight": {
"rule": "repeated",
"type": "TrafficLightFeature",
"trafficLightDetection": {
"type": "TrafficLightDetectionFeature",
"id": 9
},
"adcTrajectoryPoint": {
......
import * as THREE from "three";
const MAX_POINTS = 100000;
const MAX_POINTS = 200000;
const HEIGHT_COLOR_MAPPING = {
0.5: 0xFF0000,
1.0: 0xFF7F00,
......
......@@ -41,10 +41,6 @@ function deduceWebsocketServerAddr(type) {
// invoked in production mode ("-p"). We rely on this to determine which
// websocket server to use.
const simWorldServerAddr = deduceWebsocketServerAddr("sim_world");
const WS = OFFLINE_PLAYBACK
? new OfflinePlaybackWebSocketEndpoint(simWorldServerAddr)
: new RealtimeWebSocketEndpoint(simWorldServerAddr);
export default WS;
const mapServerAddr = deduceWebsocketServerAddr("map");
export const MAP_WS = new MapDataWebSocketEndpoint(mapServerAddr);
......@@ -55,5 +51,12 @@ export const POINT_CLOUD_WS = new PointCloudWebSocketEndpoint(pointCloudServerAd
const cameraServerAddr = deduceWebsocketServerAddr("camera");
export const CAMERA_WS = new CameraDataWebSocketEndpoint(cameraServerAddr);
const WS = OFFLINE_PLAYBACK
? new OfflinePlaybackWebSocketEndpoint(simWorldServerAddr)
: new RealtimeWebSocketEndpoint(simWorldServerAddr);
WS.setPointCloudWS(POINT_CLOUD_WS);
export default WS;
const teleopServerAddr = deduceWebsocketServerAddr("teleop");
export const TELEOP_WS = new TeleopWebSocketEndpoint(teleopServerAddr);
......@@ -7,6 +7,7 @@ export default class PointCloudWebSocketEndpoint {
this.serverAddr = serverAddr;
this.websocket = null;
this.worker = new Worker();
this.enabled = false;
}
initialize() {
......@@ -40,19 +41,23 @@ export default class PointCloudWebSocketEndpoint {
RENDERER.updatePointCloud(event.data);
}
};
// Request point cloud every 100ms.
clearInterval(this.timer);
this.timer = setInterval(() => {
if (this.websocket.readyState === this.websocket.OPEN
&& STORE.options.showPointCloud === true) {
this.websocket.send(JSON.stringify({
type : "RequestPointCloud"
}));
}
}, 200);
}
requestPointCloud() {
if (this.websocket.readyState === this.websocket.OPEN
&& STORE.options.showPointCloud === true) {
this.websocket.send(JSON.stringify({
type : "RequestPointCloud"
}));
}
}
isEnabled() {
return this.enabled;
}
togglePointCloud(enable) {
this.enabled = enable;
this.websocket.send(JSON.stringify({
type: "TogglePointCloud",
enable: enable,
......
......@@ -16,7 +16,7 @@ export default class RealtimeWebSocketEndpoint {
this.routingTime = undefined;
this.currentMode = null;
this.worker = new Worker();
this.pointcloudWS = null;
this.requestHmiStatus = this.requestHmiStatus.bind(this);
}
......@@ -144,7 +144,9 @@ export default class RealtimeWebSocketEndpoint {
this.requestDefaultRoutingEndPoint();
this.updatePOI = false;
}
if (this.pointcloudWS.isEnabled()) {
this.pointcloudWS.requestPointCloud();
}
this.requestSimulationWorld(STORE.options.showPNCMonitor);
if (STORE.hmi.isCalibrationMode) {
this.requestDataCollectionProgress();
......@@ -328,4 +330,8 @@ export default class RealtimeWebSocketEndpoint {
type: "RequestDataCollectionProgress",
}));
}
setPointCloudWS(pointcloudws) {
this.pointcloudWS = pointcloudws;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册