關於echart-gl載入世界地圖的問題
1、需求分析:
設計需求一個旋轉的地球儀作為背景
2、實現過程:
option = { backgroundColor: '#000', globe: { baseTexture: 'data-gl/asset/earth.jpg', heightTexture: 'data-gl/asset/bathymetry_bw_composite_4k.jpg', displacementScale: 0.1, shading: 'lambert', environment: 'data-gl/asset/starfield.jpg', light: { ambient: { intensity: 0.1 }, main: { intensity: 1.5 } }, layers: [{ type: 'blend', blendTo: 'emission', texture: 'data-gl/asset/night.jpg' }, { type: 'overlay', texture: 'data-gl/asset/clouds.png', shading: 'lambert', distance: 5 }] }, series: [] }
option.globe.baseTexture是地球的紋理,可以通過兩種方式:
a、支援圖片路徑字串,圖片或者 Canvas 的物件;
baseTexture: 'asset/earth.jpg'
let getOption = function (svg) { let option = { backgroundColor: 'rgba(0,0,0,0)', globe: { show: !!svg, baseTexture: svg, displacementScale: 0.4, shading: 'color',//地球中三維圖形的著色效果,通過經典的 lambert 著色表現光照帶來的明暗 viewControl: { rotateSensitivity:0 }, light: { ambient: { intensity: 0.5//全域性的環境光設定。環境光的強度。 }, main: {//場景主光源的設定,在 globe 元件中就是太陽光 intensity: 1//主光源的強度。 } }, postEffect:{ enable:true, bloom:100, } }, series: [] }; return option; }; //可能會出現圖片還未載入完全,出現白球旋轉 let image = new Image(); image.onload = () => { this.options = getOption(image); }; image.src = world;
b、直接使用 echarts 的例項作為紋理,此時在地球上的滑鼠動作會跟紋理上使用的 echarts 例項有聯動;
var canvas = document.createElement('canvas'); var mapChart = echarts.init(canvas, null, { width: 4096, height: 2048 }); mapChart.setOption({ series : [ { type: 'map', map: 'world', // 繪製完整尺寸的 echarts 例項 top: 0, left: 0, right: 0, bottom: 0, boundingCoords: [[-180, 90], [180, -90]] } ] }); ... baseTexture: mapChart
3、世界地圖的資源集合
echarts可使用的world.json檔案集合:可以發郵件找我 [email protected];
4、問題集合
a、在載入地圖資料的時候出現大白球
分析:當專案打包後,請求的資料還沒有返回時,echarts-gl就開始渲染了,所以會出現白球情況;
解決方式:增加判斷,在載入完地球紋理圖片之後再將option.globe.show=true
b、使用world.json進行渲染時,會出現球體旋轉卡頓掉幀的情況
分析:因為球體旋轉的視覺效果是通過重複執行setOption來實現的,每次都使用echarts畫一次world.json世界地圖的canvas,再將該canvas渲染至echarts-gl球體,會非常消耗效能;
解決方式:在echarts重複渲染球體之前將地圖先畫出,並作為引數傳進來【避免紋理圖片重複渲染】;需求只是需要背景圖,不需要精確的地理位置,使用圖片代替world.json渲染出的canvas圖形;圖片可以使用highmaps裡面的資料;
相關推薦
關於echart-gl載入世界地圖的問題
1、需求分析: 設計需求一個旋轉的地球儀作為背景 2、實現過程: option = { backgroundColor: '#000', globe: { baseTexture: 'data-gl/asset/earth.jpg',
Echart描繪一個世界地圖
一個Echart官網示例中世界地圖的例子: 1.首先要去官網http://echarts.baidu.com 點選開啟連結下載Echarts.js2.具體程式碼 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transiti
數據輸入——生成你需要的echart圖(世界地圖,氣泡圖)
世界 examples www cti scatter 輸入 symbol ada rgb 上一篇文章介紹了:堆積柱狀圖、扇形圖、嵌套環形圖,現在來介紹一下:世界地圖和氣泡圖 1.世界地圖 http://echarts.baidu.com/examples/editor.h
Openlayers離線載入天地圖
com def servlet 名稱 efault sqlite stub 好的 resultset 概述:經過一個春節的休整,今天最終開始了!任何時候。都不要忘記學習。學習是一輩子的事情!今天,我來說說怎樣實現天地圖的離線以及Openlayers載入離線數據實現天地圖
基於VUE+TS中引用ECharts的中國地圖和世界地圖密度表
per java out borde UNC reac nta 黑龍江 unit 首先先附上官網 http://echarts.baidu.com/option.html#series-line.label 以及密度表對應geo配置文檔 http://echarts.bai
OpenLayers載入天地圖
openlayer 是基於JavaScript的webGIS庫 ,通過openlayer可以很容易的呼叫地圖,並做相應的操作。 在head中載入openlayer的js檔案: <link rel="stylesheet" href="https://openlayers.org/e
使用pygal繪製世界地圖時的兩個報錯
我在使用pygal呼叫國別碼、繪製世界地圖的時候,遇到了兩個問題,一是使用下方語句呼叫國別碼的時候 from pygal.i18n import COUNTRIES 出現瞭如下報錯: ModuleNotFoundError: No module named 'pygal.i18n
天地圖專題一:載入天地圖
最近公司的專案到了尾聲。總結一下專案中的一些技術。其中有涉及到天地圖的部分。 類似百度地圖,google地圖。 我們要用一些它的公共介面,實現一些我們的效果。 比如在地圖上顯示我們的裝置的位置,範圍,執行軌跡等等。 大多數的功能其實都只是參考天地圖官方api。http://api.t
Arcgis for android100.3 載入影像地圖並且快取地圖
這裡載入並且快取影像的目的是為了防止遙感影像的拷貝,專案之前都是在拷貝影像(因為資料較大,下載太費事),在此進行更新,改為先是載入線上影像,然後再進行快取。 一、先重寫了Arcgis for android的一個ImageTiledLayer(因為別的大多數方法是不允許被重寫的----),先看一
Global Mapper如何載入線上地圖
Global Mapper是一個比較好用的GIS資料處理軟體,官網:http://www.bluemarblegeo.com/products/global-mapper.php ,除使用ArcGIS軟體的處理資料外,這個軟體也常用來處理資料,它不會像ArcGIS等大型商業GIS軟體那樣臃腫。 但是,以前它
前端 繪製世界地圖
<div class="col-xxl-6 col-lg-6 col-md-6" style="margin-bottom: -6px"> &n
使用Echart搭配百度地圖建立某一地區熱點圖的注意點
使用Echart搭配百度地圖建立的熱點圖,為網友免費做的demo,細節沒有調整.記錄一下寫的過程. 效果圖: 程式碼: <!DOCTYPE html> <html style="height: 100%"> <head>
echarts繪製世界地圖部分機場顯示
<!DOCTYPE html> <html style="height: 100%";> <head> <meta charset="utf-8"> &n
Openlayers官方示例詳解十二之通過XYZ方式載入瓦片地圖
目錄 一、示例簡介 二、程式碼詳解 三、補充 一、示例簡介 這個示例展示了通過XYZ格式的URL訪問瓦片地圖資料,有關XYZ方式載入瓦片地圖可以參考這篇文章:萬能瓦片載入祕籍。 本示例載入的瓦片地圖是Thunderf
(四) arcgis runtime for android 100.3開發學習(載入切片地圖服務)
今天我們來學習關於arcgis for android載入切片地圖服務相關知識。使用的是新版本的arcgis runtime for android100.3,我們來看下載入切片地圖服務的類ArcGISTiledLayer,該類繼承了ImageTiledLayer類,其中Ar
4.02WorldWindAndroid載入天地圖線上非正切片地圖
WorldWindAndroid對於TileImage的載入預設是按照等經緯差的正切片載入的,經圈範圍-180--180,緯圈範圍-90--90,所以,經緯方向上的切片規格為2X1! 為了能夠載入經緯差之比為2:1的切片服務,需要將載入正切片的方式進行一定的處理,才能正確載入本服務! 1、第一級
osmdroid 載入天地圖線上向量和影像資料
osmdroid 載入天地圖線上向量和影像資料 轉載 載入天地圖線上向量和影像資料 Osmdroid下載地址 Osmdroid github 效果圖 程式碼展示 影像地圖 import android.os.Bundle; impor
[python] 幾行代碼也能玩轉世界地圖?
2.6 圖表 ont 點擊 了解 tst 形式 tex pre 前些天收到某位大佬的求助,說是需要給根據數據給安徽省地市來繪制個圖,用不同顏色來直觀表示數據。當時就想到了Python提供一個繪制地圖的庫—— Pyecharts。 Pyecharts是一個用於生成echart
如何使用微圖載入離線地圖
最近使用微圖新增離線地圖的時候經常會出現開啟地圖 “沒有地圖”的情況,這裡集中講解一下如何新增離線地圖到微圖內。 工具/原料 方法/步驟 1.首先找到萬能地圖下載器下
使用openlayers 3 線上載入天地圖及GeoServer釋出的地圖
之前試了openlayers2載入天地圖,不過公司已經棄用2,所以使用openlayers3來載入天地圖衛星圖和標註圖層,今天又學習了GeoServer釋出地圖,一併用openlayers測試加載出來,順便實現了7種地圖控制元件。下面直接貼程式碼:<!