日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于平臺能力實現(xiàn)路況渲染

以交通行業(yè)應(yīng)用(智行通·交管)為例,為您說明如何基于交通云控平臺提供的數(shù)據(jù)實現(xiàn)路況渲染。

背景介紹

智行通·交管是阿里云基于交通云控平臺能力研發(fā)的一款交通應(yīng)用,旨在快速發(fā)現(xiàn)解決城市交通問題。智行通應(yīng)用可提供城市擁堵規(guī)律分析、實時/常發(fā)擁堵路口/路段分析、綠波帶挖掘、車輛軌跡分析等功能。

如下圖所示,應(yīng)用中包括實時路況展示、歷史(如近一月、一周)路況回放等功能。

  • 實時路況展示

    實時路況展示
  • 歷史路況回放

    歷史路況回放

下文以“實時擁堵路況”為例,介紹智行通如何實現(xiàn)全市各等級道路實時路況展示,如何實現(xiàn)路況的播放、暫停、停止,以及通過拖拽來控制路況播放時刻。

環(huán)境準備

技術(shù)組件

  • DB:本文以RDS(MySQL)為示例,具體DB以下文中的數(shù)據(jù)表在您項目中的落地數(shù)據(jù)庫為準。

    您可以在 交通云控平臺 > 數(shù)據(jù) > 數(shù)據(jù)服務(wù) > 數(shù)據(jù)表 中通過搜索表名,確認該表的存儲數(shù)據(jù)庫。

  • GIS Server:TMS,WFS

  • Map:GAS(Mapbox 1.x)

數(shù)據(jù)

實時路況渲染涉及的數(shù)據(jù)表如下:

  • 路段基本信息表:dwd_tfc_bas_rdnet_ioiseg_info

  • 實時路況表:dws_tfc_state_ioi_nd_lastmultispeed_rt

如需做歷史回放,還需要以下數(shù)據(jù)表:

  • 7、30天歷史回放:adm_tfc_state_ioi_tpdoe_speedindex_d

  • 月歷史回放:adm_tfc_state_ioi_tpdoe_speedindex_m

  • 當天歷史回放:adm_tfc_state_ioi_tp_multispeed_rt

下文以“dwd_tfc_bas_rdnet_ioiseg_info”表為例,為您介紹表數(shù)據(jù)的獲取操作:

  1. 數(shù)據(jù)服務(wù) >數(shù)據(jù)表 中搜索表名。

    數(shù)據(jù)表搜索
  2. 點擊表名即可跳轉(zhuǎn)至該表的明細界面,查看該表的字段、血緣、規(guī)則等詳細信息。

    表詳情

服務(wù)

  • 基礎(chǔ)地圖

    項目中一般會購買圖盟、千尋等廠商的基礎(chǔ)地圖引擎產(chǎn)品,您可聯(lián)系項目經(jīng)理獲取服務(wù)。此處以開源地圖引擎為例子,闡述如何使用地圖引擎進行路況渲染。

    • 服務(wù)格式:WMTS

    • 服務(wù)來源:https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetGray/MapServer/tile/{z}/{y}/{x} (請將“{z} {y} {x}”替換為您的實際參數(shù),z表示層級,x、y 表示行列)

  • 路段基本信息表

    • 服務(wù)格式:TMS(矢量瓦片)

    • 服務(wù)來源:dwd_tfc_bas_rdnet_ioiseg_info

  • 實時路況

    • 服務(wù)格式:TMS(矢量瓦片)

    • 服務(wù)來源:dws_tfc_state_ioi_nd_lastmultispeed_rt JOIN dwd_tfc_bas_rdnet_ioiseg_info

渲染

前端渲染引擎使用的是GAS,底層基于Mapbox 1.x 開發(fā)。在路況場景下,可以直接理解為Mapbox。主要借助于Mapbox對圖層的能力來實現(xiàn),詳情可參見Mapbox官方文檔

實現(xiàn)過程

步驟一:準備數(shù)據(jù)源

針對路段基本信息表dwd_tfc_bas_rdnet_ioiseg_info,添加空間字段geometry。代碼如下:

  1. 添加新字段:ALTER TABLE `dwd_310000`.`dwd_tfc_bas_rdnet_ioiseg_info` ADD COLUMN `geometry` LINESTRING NULL COMMENT '經(jīng)緯度串geometry格式'

  2. 轉(zhuǎn)換并插入空間字段:UPDATE `dwd_310000`.`dwd_tfc_bas_rdnet_ioiseg_info` SET `geometry` = GeomFromText(CONCAT('LINESTRING(', REPLACE(REPLACE(lnglat_seq, ',', ' '), ';', ','), ')'), 4326)

  3. 字段設(shè)為非空:ALTER TABLE `dwd_310000`.`dwd_tfc_bas_rdnet_ioiseg_info` modify COLUMN `geometry` LINESTRING NOT NULL

  4. 創(chuàng)建索引:CREATE SPATIAL INDEX i_geometry ON `dwd_310000`.`dwd_tfc_bas_rdnet_ioiseg_info`(geometry);

步驟二:在GeoServer中插入相關(guān)數(shù)據(jù)源

  • 查詢底層路網(wǎng)結(jié)構(gòu)

    SELECT t.road_level,t.geometry AS the_geom
    FROM  dwd_310000.dwd_tfc_bas_rdnet_ioiseg_info  t
  • 查詢實時路況

    SELECT
        t.road_level,
        p.jam_state_drawing,
        t.geometry AS the_geom 
    FROM
        dws_310000.dws_tfc_state_ioi_nd_lastmultispeed_rt p
    RIGHT JOIN dwd_310000.dwd_tfc_bas_rdnet_ioiseg_info t 
    ON p.ioi_id = t.start_ioi_id 
    WHERE
        p.dt = curdate() 
    AND p.jam_state_drawing IN ( 2, 3, 4 ) 
    AND p.tp = '1mi'

發(fā)布服務(wù)

  1. 新建數(shù)據(jù)源

    打開 GeoServer 管理界面,根據(jù)界面提示,選擇您要配置的數(shù)據(jù)源類型,并為其配置數(shù)據(jù)源名稱和工作區(qū)等信息。

    新建數(shù)據(jù)源
  2. 新建服務(wù)

    以基礎(chǔ)道路為例,設(shè)置名稱為“shanghai_ioi_base”。

  3. 驗證服務(wù)

    找到對應(yīng)服務(wù),選擇 openlayers。

    image.png

前端調(diào)用

以下為調(diào)用基礎(chǔ)路網(wǎng)的示例代碼。

mapboxgl.accessToken = '你的token';
var map = new mapboxgl.Map({
    container: 'map',
    center: [120.373917, 36.065276],
    zoom: 13
});
map.on('load', function() {
    map.addSource('my_source', { // source ID
        'type': 'vector',
        'scheme': 'tms',
        'tiles': ['https://[YOUR_GIS_SERVER]/geoserver/gwc/service/tms/1.0.0/[YOUR_SERVICE_NAME]@EPSG:3857@pbf/{z}/{x}/{y}.pbf']
    });
    map.addLayer({
        'id': ' traffic_condition ', // layer id
        'source': 'my_source', //與上面那個source保持一致
        'source-layer': ' YOUR_LAYER_NAME ', 
        type: 'line',
        layout: {
          'line-join': 'round',
          'line-cap': 'round'
         },
        'paint': {
          'line-color': {
            type: 'categorical', // 按照分類方式渲染
            property: ' YOUR_PROPERTY_NAME ', // 渲染屬性
            stops: [// 分等級渲染路況
              [1, '#11d127'],
              [2, '#fecb00'],
              [3, '#E02001'],
              [4, '#8D100A']
            ],
            default: '#11d127' // 默認道路顏色
          },
          'line-width': 3 //線寬
        }
    });
});

說明

擁堵狀態(tài)定義為四類:1(暢通),2(緩行),3(擁擠),4(嚴重擁堵)。

您可以設(shè)定基礎(chǔ)路網(wǎng)默認全部是綠色,即對應(yīng)上述1(暢通)狀態(tài)。在擁堵數(shù)據(jù)里只查詢2、3、4狀態(tài)的數(shù)據(jù),從而減少整個路況產(chǎn)出表的數(shù)據(jù)量,提升效率。