jquery - jQuery kendoUI:地图绘制矩形不起作用
问题描述
剑道 UI v2019.1.220 for jQuery
尝试显示具有不同不透明度值的矩形的世界地图以制作密度分布图。
我尝试做的是这个
变量数据 = { minLat: 0, 分钟长:-95.98861, 步骤X:1.12570589, 步骤Y:0.50980665, 值:{ '6:99': {v: 66.09}, '8:89': {v: 30}, '6:99': {v: 66.09}, '8:89': {v: 30}, '10:89': {v: 15.5}, '11:81': {v: 3}, '11:82': {v: 4}, '11:86': {v: 2.4}, '11:89': {v: 3}, '12:80': {v: 18}, '12:83': {v: 18}, '12:84': {v: 21.9}, '14:79': {v: 220.75}, '14:80': {v: 86.8}, } }; $("div#whatever").kendoMap({ 缩放:11, 层数:[ { 类型:“形状” }, { 类型:“瓷砖”, urlTemplate: "http://#= subdomain #.tile.openstreetmap.org/#= zoom #/#= x #/#= y #.png", 子域:[“a”,“b”,“c”], 归属:“© OpenStreetMap” }, ], 重置:函数(e){ 让 map = $("div#whatever").data('kendoMap'); _drawRects(地图,数据); } }); 变种颜色=“红色”; var _drawRects = 函数(地图,信息){ 让 maxAvg = Math.max( ...Object.keys(info.values).map(k => info.values[k]) ); for( 让我进入 info.values ){ if(info.values.hasOwnProperty(i)){ 让 coor = i.split(':'); let dim = new kendo.dataviz.geometry.Rect( 新的 kendo.dataviz.geometry.Point(info.stepY*coor[1], info.stepX*coor[0]), 新 kendo.dataviz.geometry.Size(info.stepX, info.stepY) ); 让方 = 新 kendo.dataviz.drawing.Rect( 暗淡, { 充满: { 颜色:颜色, 不透明度:1 - info.values[i].v / maxAvg }, 中风: { 颜色:颜色, } } ); map.layers.find(l=>l.options.type==='shape').surface.draw(square); } } };
没有错误,矩形只是没有出现
坐标似乎是有效的,因为如果我用它们来放置标记,它们就可以工作
上面的代码有什么问题?
解决方案
修复maxAvg
计算处理.v
改变
let maxAvg = Math.max( ...Object.keys(info.values).map(k => info.values[k]) );
至
let maxAvg = Math.max( ...Object.keys(info.values).map(k => info.values[k].v) );
并将创建移动.kendoMap
到脚本底部,在_drawRects
分配功能之后。
推荐阅读
- button - (如何)我可以更改 F# Fable Elmish 中禁用按钮的字体颜色吗?
- android - 使用Android项目的Gradle插件将代码注入合并清单
- linux - 反转很多值的 grep 没有一致的输出
- java - 动态生成的 JNLP,使用不同证书签名的 jar
- visual-studio-code - 需要能够使用快速打开在 VSCode 中搜索 python-packages
- python - 如何阻止第二个线程启动直到第一个线程停止或在 Tkinter 中执行线程时如何锁定按钮
- sql-server - (Sql Server) BEGIN TRANSACTION vs (Qt) QSqlDatabase.database().transaction()
- angular - 在现有元素上使用角度动画查询/交错?
- vb.net - 如何检测 Alt + Tab 键然后关闭表单?
- flow - 如何动态为组件充电?