mirror of https://gitee.com/antv-l7/antv-l7
parent
238fba3042
commit
d5fc5afbc4
|
@ -64,7 +64,20 @@ scene.on('loaded', () => {
|
||||||
$.getJSON('https://gw.alipayobjects.com/os/rmsportal/JToMOWvicvJOISZFCkEI.json', city => {
|
$.getJSON('https://gw.alipayobjects.com/os/rmsportal/JToMOWvicvJOISZFCkEI.json', city => {
|
||||||
const citylayer = scene.PolygonLayer()
|
const citylayer = scene.PolygonLayer()
|
||||||
.source(city)
|
.source(city)
|
||||||
.color('pm2_5_24h',(p)=>{
|
.color('pm2_5_24h',colorObj['green'])
|
||||||
|
.shape('fill')
|
||||||
|
.active(true)
|
||||||
|
.style({
|
||||||
|
opacity: 1
|
||||||
|
})
|
||||||
|
.render();
|
||||||
|
|
||||||
|
/**
|
||||||
|
const colorsEnum = ['blue','red','orange','green','purple','purple']
|
||||||
|
setInterval(()=>{
|
||||||
|
const index = parseInt(Math.random() * 5)
|
||||||
|
const colors = colorObj[colorsEnum[index]]
|
||||||
|
citylayer.color('pm2_5_24h',(p)=>{
|
||||||
if(p>120){
|
if(p>120){
|
||||||
return colors[5];
|
return colors[5];
|
||||||
} else if(p>65){
|
} else if(p>65){
|
||||||
|
@ -78,13 +91,12 @@ scene.on('loaded', () => {
|
||||||
}else {
|
}else {
|
||||||
return colors[0];
|
return colors[0];
|
||||||
}
|
}
|
||||||
})
|
}).render()
|
||||||
.shape('fill')
|
|
||||||
.active(true)
|
},10000)
|
||||||
.style({
|
**/
|
||||||
opacity: 1
|
|
||||||
})
|
|
||||||
.render();
|
|
||||||
|
|
||||||
const citylayer2 = scene.PolygonLayer()
|
const citylayer2 = scene.PolygonLayer()
|
||||||
.source(city)
|
.source(city)
|
||||||
|
@ -113,7 +125,6 @@ scene.on('loaded', () => {
|
||||||
$('.info-panel select').change(function(){
|
$('.info-panel select').change(function(){
|
||||||
const color = $(this).val();
|
const color = $(this).val();
|
||||||
citylayer.color('pm2_5_24h',colorObj[color]).render();
|
citylayer.color('pm2_5_24h',colorObj[color]).render();
|
||||||
console.timeEnd('color')
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -41,7 +41,7 @@ scene.on('loaded', () => {
|
||||||
.shape('line')
|
.shape('line')
|
||||||
.style({
|
.style({
|
||||||
lineType: 'dash',
|
lineType: 'dash',
|
||||||
dashArray: 200,
|
dashArray: 20,
|
||||||
dashOffset: 0.2,
|
dashOffset: 0.2,
|
||||||
dashRatio: 0.5
|
dashRatio: 0.5
|
||||||
})
|
})
|
||||||
|
|
|
@ -169,7 +169,6 @@ export default class Mapping {
|
||||||
for (let i = 0; i < fields.length; i++) {
|
for (let i = 0; i < fields.length; i++) {
|
||||||
const field = fields[i];
|
const field = fields[i];
|
||||||
const scale = self._createScale(field);
|
const scale = self._createScale(field);
|
||||||
|
|
||||||
if (type === 'color' && Util.isNil(option.values)) { // 设置 color 的默认色值
|
if (type === 'color' && Util.isNil(option.values)) { // 设置 color 的默认色值
|
||||||
option.values = Global.colors;
|
option.values = Global.colors;
|
||||||
}
|
}
|
||||||
|
|
|
@ -416,25 +416,14 @@ export default class Layer extends Base {
|
||||||
this.draw();
|
this.draw();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 更新数据过滤 filter
|
|
||||||
if (!Util.isEqual(preAttrs.filter, nextAttrs.filter)) {
|
if (!Util.isEqual(preAttrs.filter, nextAttrs.filter) ||
|
||||||
|
!Util.isEqual(preAttrs.color, nextAttrs.color) ||
|
||||||
|
!Util.isEqual(preAttrs.size, nextAttrs.size) ||
|
||||||
|
!Util.isEqual(preAttrs.shape, nextAttrs.shape)
|
||||||
|
) {
|
||||||
this.repaint();
|
this.repaint();
|
||||||
this._setPreOption();
|
this._setPreOption();
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Util.isEqual(preAttrs.color, nextAttrs.color)) {
|
|
||||||
this._updateAttributes(this.layerMesh);
|
|
||||||
}
|
|
||||||
// 更新Size
|
|
||||||
if (!Util.isEqual(preAttrs.size, nextAttrs.size)) {
|
|
||||||
// 更新color;
|
|
||||||
this.repaint();
|
|
||||||
}
|
|
||||||
// 更新形状
|
|
||||||
if (!Util.isEqual(preAttrs.shape, nextAttrs.shape)) {
|
|
||||||
// 更新color;
|
|
||||||
this.repaint();
|
|
||||||
}
|
}
|
||||||
if (!Util.isEqual(preStyle, nextStyle)) {
|
if (!Util.isEqual(preStyle, nextStyle)) {
|
||||||
// 判断新增,修改,删除
|
// 判断新增,修改,删除
|
||||||
|
@ -505,31 +494,20 @@ export default class Layer extends Base {
|
||||||
*/
|
*/
|
||||||
_updateAttributes(object) {
|
_updateAttributes(object) {
|
||||||
this.get('mappingController').update();
|
this.get('mappingController').update();
|
||||||
const filterData = this.layerData;
|
|
||||||
this._activeIds = null; // 清空选中元素
|
this._activeIds = null; // 清空选中元素
|
||||||
const colorAttr = object.geometry.attributes.a_color;
|
const colorAttr = object.geometry.attributes.a_color;
|
||||||
const pickAttr = object.geometry.attributes.pickingId;
|
const pickAttr = object.geometry.attributes.pickingId;
|
||||||
pickAttr.array.forEach((id, index) => {
|
pickAttr.array.forEach((id, index) => {
|
||||||
id = Math.abs(id);
|
id = Math.abs(id);
|
||||||
const color = [ ...this.layerData[id - 1].color ];
|
const color = [ ...this.layerData[ id - 1 ].color ];
|
||||||
id = Math.abs(id);
|
id = Math.abs(id);
|
||||||
const item = filterData[id - 1];
|
colorAttr.array[index * 4 + 0] = color[0];
|
||||||
if (item.hasOwnProperty('filter') && item.filter === false) {
|
colorAttr.array[index * 4 + 1] = color[1];
|
||||||
colorAttr.array[index * 4 + 0] = 0;
|
colorAttr.array[index * 4 + 2] = color[2];
|
||||||
colorAttr.array[index * 4 + 1] = 0;
|
colorAttr.array[index * 4 + 3] = color[3];
|
||||||
colorAttr.array[index * 4 + 2] = 0;
|
// pickAttr.array[index] = id;
|
||||||
colorAttr.array[index * 4 + 3] = 0;
|
|
||||||
pickAttr.array[index] = -id; // 通过Id数据过滤 id<0 不显示
|
|
||||||
} else {
|
|
||||||
colorAttr.array[index * 4 + 0] = color[0];
|
|
||||||
colorAttr.array[index * 4 + 1] = color[1];
|
|
||||||
colorAttr.array[index * 4 + 2] = color[2];
|
|
||||||
colorAttr.array[index * 4 + 3] = color[3];
|
|
||||||
pickAttr.array[index] = id;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
colorAttr.needsUpdate = true;
|
colorAttr.needsUpdate = true;
|
||||||
pickAttr.needsUpdate = true;
|
|
||||||
}
|
}
|
||||||
_visibleWithZoom() {
|
_visibleWithZoom() {
|
||||||
if (this._object3D === null) return;
|
if (this._object3D === null) return;
|
||||||
|
|
|
@ -35,7 +35,7 @@ void main() {
|
||||||
// extrude along normal
|
// extrude along normal
|
||||||
float extrude_scale = pow(2.0, 20.0 - u_zoom);
|
float extrude_scale = pow(2.0, 20.0 - u_zoom);
|
||||||
v_color = a_color;
|
v_color = a_color;
|
||||||
v_dash_array = a_dash_array;
|
v_dash_array = a_dash_array * pow(2.0, 20.0 - u_zoom);
|
||||||
float distance_ratio = a_distance / a_total_distance;
|
float distance_ratio = a_distance / a_total_distance;
|
||||||
#if defined DASHLINE || defined ANIMATE
|
#if defined DASHLINE || defined ANIMATE
|
||||||
v_distance_ratio = distance_ratio;
|
v_distance_ratio = distance_ratio;
|
||||||
|
|
|
@ -5,9 +5,10 @@ export default class LineLayer extends Layer {
|
||||||
super(scene, cfg);
|
super(scene, cfg);
|
||||||
this.set('type', 'line');
|
this.set('type', 'line');
|
||||||
}
|
}
|
||||||
shape(type) {
|
shape(field, values) {
|
||||||
this.shapeType = type;
|
super.shape(field, values);
|
||||||
this.set('shape', type);
|
this.shapeType = field;
|
||||||
|
this.set('shape', field);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
preRender() {
|
preRender() {
|
||||||
|
|
|
@ -64,7 +64,7 @@ export default class GaodeMap extends Base {
|
||||||
this.map = new AMap.Map(this.container, this._attrs);
|
this.map = new AMap.Map(this.container, this._attrs);
|
||||||
this.map.on('complete', () => {
|
this.map.on('complete', () => {
|
||||||
if (this.get('mapStyle') === 'blank') {
|
if (this.get('mapStyle') === 'blank') {
|
||||||
map.setFeatures([]);
|
this.map.setFeatures([]);
|
||||||
}
|
}
|
||||||
this.addOverLayer();
|
this.addOverLayer();
|
||||||
this.emit('mapLoad');
|
this.emit('mapLoad');
|
||||||
|
|
Loading…
Reference in New Issue