前言
關(guān)于本篇功能實現(xiàn)用到的 api 涉及類看不懂的似将,請參照 esri 官網(wǎng)的 arcgis api 3.x for js:esri 官網(wǎng) api浴滴,里面詳細的介紹 arcgis api 3.x 各個類的介紹虎敦,還有就是在線例子:esri 官網(wǎng)在線例子,這個也是學(xué)習(xí) arcgis api 3.x 的好素材遏片。
內(nèi)容概覽
- 基于 arcgis api 3.x 實現(xiàn)克里金插值渲染圖
- 源代碼 demo 下載
本篇的亮點是利用 kriging.js 結(jié)合 arcgis api 3.x for js炒辉,實現(xiàn)克里金插值渲染圖,截圖如下:
image
具體實現(xiàn)的思路
- kriging.js 開源 js到逊,可以實現(xiàn)針對容器 canvas 克里金插值效果铣口,但是沒有結(jié)合地圖一起的滤钱,不能隨著地圖拖動縮放的,需要跟地圖綁定在一起才行的脑题,這里先實現(xiàn) canvas 渲染插值效果件缸,kriging.js 的 plot 函數(shù)可以達到這樣的目的:
kriging.plot(canvas, grid, [113.220276, 113.476929], [29.737915, 29.965698], colors);
colors:渲染顏色分級數(shù)組;
canvas:渲染容器叔遂;
[113.220276, 113.476929], [29.737915, 29.965698]:渲染的最大最小值范圍他炊;
grid:渲染的插值,跟 point 插值點有關(guān)系掏熬,具體的如下:
var grid = kriging.grid(world, variogram, width);
world:插值范圍佑稠,點數(shù)組構(gòu)成,比如:
var world =
[
[
[
113.33752441406284,
29.881896972656477
],
[
113.3394713498775,
29.879479149706071
],
[
113.34130859375034,
29.876525878906421
],
...
],
]
variogram:
var variogram = kriging.train(t, x, y, "exponential", 0, 10);
- kriging.js 渲染效果疊加在 map 對象旗芬,綁定一起展示舌胶,以 layer 形式疊加在 map 即可
首先在地圖初始化里面創(chuàng)建 MapImageLayer 圖層
var mil = new MapImageLayer({ 'id': 'usgs_screen_overlay', 'opacity': 0.5 });
mymap.addLayer(mil);
其次,地圖加載完成事件調(diào)用
//地圖加載函數(shù)
mymap.on("load", function () {
//渲染克里斯插值
loadkriging();
RefleshPNG2(mymap,mil);
});
更多的詳情見:GIS之家小專欄
文章尾部提供源代碼下載疮丛,對本專欄感興趣的話幔嫂,可以關(guān)注一波