0%

思路:小于的 segment 合并 画 1 个?(填补 segments 之间的 缝隙)

导致新问题: 何时重画 为 小段?

styleFunc 里面不能修改 feature 本身数据!需要 map on change:resolutuon 和 map on moveend (如果 point 视野外 被删除的话)

必须 styleFunction 里面 否则 zoom drag 永远不显示啦!!!!

styleFunction 里面和外面(不进入geojson) return 的区别:全局变量有。但是不画,也点不到。

  • multiline 多根 -> 1根 缺点是: 不能识别 segment

  • 同理 multi point

  • 短于 10 像素的 line 不画

  • point 数量 > 2000 不画

  • point 位置重叠 不画

短于 10 像素的 line 不画

1
2
3
let res = map.getView().getResolution();
let dt = get_distance_by_co2([sposx, sposy],[eposx,eposy],1) / res;
if(dt<20){return;}

getClosestFeatureToCoordinate

注意:这个性能也很差!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 伟业开  pos_x: 108.939079   pos_y: 34.254787

var cor = [108.939079,34.254787];
var pos = ol.proj.transform(cor,'EPSG:4326', 'EPSG:3857');
var rs = layer_bdz.getSource().getClosestFeatureToCoordinate(pos,function(d){
// console.log(d);
let prop = d.getProperties();
return prop['pos_x']!= cor[0] && prop['pos_y']!= cor[1];
})
console.log(rs);

// 最近的 多少 米
var pp2 = rs.getProperties();
var pos2 = ol.proj.transform([pp2.pos_x,pp2.pos_y],'EPSG:4326', 'EPSG:3857');
var dd = get_distance_by_co2(pos,pos2,0); // 1 是经纬度;0 是 google 坐标
console.log(dd);

// 最近的 多少 像素
var dxy = dd/map.getView().getResolution();
console.log('最近的 feature 距离 像素:',dxy);
if(dxy < 20){return;}

map.hasFeatureAtPixel(pixel)

1
2
3
4
5
6
7
8
var pos = ol.proj.transform([108,34],'EPSG:4326', 'EPSG:3857'); //
var pixel = map.getPixelFromCoordinate(pos); // lnglat -> xy
console.log(pixel);
var is_repeated = map.hasFeatureAtPixel(pixel,{
hitTolerance:20
}); // xy has feature
console.log(is_repeated);
if(is_repeated){return;}

注意:但是 map.hasFeatureAtPixel 性能很差!!!!!!执行时间很长!

stylefunc_node_default

styleFunction_segment

querySelectorAll 结果 是 nodelist 不是数组!!!!

var a = Array.from(document.querySelectorAll(‘label’));

var a = […document.querySelectorAll(‘label’)];

var a = Array.prototype.map.call(document.querySelectorAll(‘label’),k=>k);

var a = Array.prototype.slice.call(document.querySelectorAll(‘label’))

var a = Array.prototype.filter.call(document.querySelectorAll(‘label’),k=>k);

var a = [];for(i of document.querySelectorAll(‘label’)){a.push(i);}

var a = [], rs = document.querySelectorAll(‘label’);for(i=0;i< rs.length;i++){a.push(rs[i]);}

var a = [], rs = document.querySelectorAll(‘label’);rs.forEach(k=>k);

var a = [];document.querySelectorAll(‘label’).forEach(k=>a.push(k));

var a = [], rs = document.querySelectorAll(‘label’);for(k of rs.entries()){a.push(k);}

var a = [], rs = document.querySelectorAll(‘label’);for(k of rs.entries()){a.push(k[1]);}

var a = [], rs = document.querySelectorAll(‘label’);for(k of rs.values()){a.push(k);}

var a =[];
var rs = document.querySelectorAll(‘label’);

some 只要1个符合;every 全部符合 返回 true

var a = [];
Array.prototype.some.call(document.querySelectorAll(‘label’),k=>{
a.push(k);
});

var a = [];
Array.prototype.every.call(document.querySelectorAll(‘label’),k=>{
return a.push(k);
});

一直找不到。。。

var a = [];
Array.prototype.find.call(document.querySelectorAll(‘label’),k=>{
return !a.push(k);
});

https://medium.com/poka-techblog/simplify-your-javascript-use-map-reduce-and-filter-bd02c593cc2d

https://medium.com/mr-frontend-community/5-ways-to-loop-over-dom-elements-from-queryselectorall-in-javascript-55bd66ca4128

https://medium.com/@chuckdries/traversing-the-dom-with-filter-map-and-arrow-functions-1417d326d2bc

Array keys

for (var elem of Array(3).keys()){
console.log(elem);
}

// If you really want to use forEach…
[…Array(3).keys()].forEach(k => console.log(‘spread syntax -> ‘, k));

// Or using Array.from
Array.from(Array(3).keys()).forEach(k => console.log(‘Array.from ->’, k));

自产自销的只有两人:袁隆平、陈景润。

名单来自

钱学森

国立交通大学
美国麻省理工学院硕士学位
加州理工学院博士

李四光

东京弘文学院
大阪高等工业学校
英国伯明翰大学自然科学硕士
伯明翰大学博士

袁隆平

祖父曾任海南文昌县县长,父母为知识分子,父亲袁兴烈毕业于国立中央大学(今南京大学)中文系,母亲华静自幼在英国教会学校读书。1949年,他又回到了重庆读高中。1949年8月,考入了重庆相辉学院农学系,后并入西南农学院

西南农学院(现西南大学)

竺可桢

复旦公学
西南交通大学
美国伊利诺伊大学农学院
美国哈佛大学博士

邓稼先

邓稼先1924年6月25日出生于中华民国安徽怀宁,为邓石如后人,其父邓以蛰,是大学教授。

西南联大物理系
美国普渡大学物理系博士

钱伟长

1942年,在美国加州理工学院和喷射推进研究所做博士后研究,与钱学森、林家翘、郭永怀一起,在冯·卡门教授指导下从事航空航天领域的研究工作,参加火箭和导弹实验,他和同事们研究的主要课题是火箭的起飞、飞行中火箭的翻滚、火箭弹道的控制等。钱伟长很快连续发表了好几篇论文,并在研究、设计、制造等环节中,做了许多具体工作。

清华大学物理系
加拿大多伦多大学
美国加州理工学院和喷射推进研究所做博士后

侯德榜

1950年,侯德榜出任重工业部化工局顾问。1957年加入中国共产党。1959年被任命为化工部副部长,兼任中国科学技术协会副主席、中国化学工业学会理事长。1950年代,侯德榜带领技术人员,开发出“碳化法合成氨制碳酸氢铵”工艺,这一工艺使得县级小化肥厂也可以生产优质化肥,一定程度上缓解了中国当时氮肥不足的局面

北平清华留美预备学堂
麻省理工学院化工科
哥伦比亚大学博士

钱三强

师从诺贝尔奖获得者伊雷娜·约里奥-居里及其丈夫弗雷德里克·约里奥-居里

清华大学物理系
法国巴黎大学居里实验室
法兰西学院原子核化学实验室博士

周培源

1924年毕业于清华学校。1926年春获美国芝加哥大学学士学位,同年底获硕士学位。1928年获美国加州理工学院博士学位。

1936年在美国普林斯顿高等研究院跟从爱因斯坦研究广义相对论。其后,在德国莱比锡大学和瑞士苏黎世联邦理工学院继续进行量子力学的博士后研究。

历任清华大学物理系教授、清华大学教务长,北京大学数学力学系教授、北京大学副校长,北京大学校长,中国科学院院士。

清华学校
美国芝加哥大学学士学位
美国芝加哥大学硕士学位
美国加州理工学院博士
德国莱比锡大学和瑞士苏黎世联邦理工学院博士后

茅以升

1966年文革期间,多次受到批斗,其女回忆,茅以升每天上班,进了大门颈上就被戴上“反动学术权威” 或其它什么罪名的黑牌子,姓名上被打上黑叉叉,戴上黑牌子后还要在院内游走一番,任何时候都会被造反派揪住围攻一通。

西南交通大学
美国康乃尔大学硕士
卡内基梅隆大学博士

童第周

上海复旦大学
比利时布鲁塞尔自由大学博士

郭永怀

郭永怀(1909年4月4日-1968年12月5日),山东荣成人,中国流体力学家。1999年颁发两弹一星功勋奖章受勋23位科学家之一,主导两弹一星之中原子弹的力学研究。

南开大学
北京大学
加拿大多伦多大学应用数学系硕士
美国加州理工学院博士

严济慈

国立东南大学物理系理学学士
法国巴黎大学硕士

吴有训

南京高等师范学校
美国芝加哥大学物理系博士

丁颖

广东省高等师范学校博物科
日本东京帝国大学农学部 9年


华罗庚

清华大学
访问剑桥大学
往普林斯顿高等研究院访问
伊利诺伊大学聘为正教授

赵九章

主持制定了中国第一颗人造卫星东方红一号的研制方案计划和卫星系列规划设想,并与钱骥一起领导了卫星各系统的设计和研制工作[5]。“文革”期间受到造反派迫害,1968年10月25日(也有说10月11日)在北京中关村15楼服安眠药自杀。1999年被追认为两弹一星元勋之一。[6][7]

浙江公立专门学校(后为浙江大学工学院)电机系
清华大学物理系
柏林大学博士

苏步青

日本东京高等工业学校电机科
仙台东北帝国大学数学系
东北帝国大学理学博士

贝聿铭

宾州大学
麻省理工学院建筑学学士学位
哈佛大学建筑学硕士学位

周培源

清华学校
美国芝加哥大学学士 硕士
美国加州理工学院博士
美国普林斯顿高等研究院跟从爱因斯坦研究广义相对论。
德国莱比锡大学和瑞士苏黎世联邦理工学院继续进行量子力学的博士后

陈景润

厦门大学数学系

李政道

浙江大学物理系
西南联合大学
芝加哥大学博士

杨振宁

1922年杨振宁生于中国安徽合肥[1],父亲杨武之获芝加哥大学数学博士学位,回国后曾任清华大学与西南联合大学数学系主任多年。杨振宁出生时他父亲正在怀宁一所中学教书,故给长子取名“振宁”[19]。

斯坦福大学
芝加哥大学数学系博士

1
open "http://baidu.com"
1
open -a "Firefox"  "https://stackoverflow.com"
1
open -n -a "Google Chrome" --args "--new-window" "https://stackoverflow.com"

hexo

不更新 main.css 在 public 目录删除,然后 hexo g

Emoji

macOS 内置丰富的表情、符号库,通过内置的输入法可以很轻松地输入例如😬(笑容)等 Emoji 表情,也可以输入如⌘(command)、⌥(option)、⇧(shift)、⇪(caps lock)、⌃(control)、↩(return)等系统特殊符号。

ctrl+command+space 或者 输入法菜单 show Emoji & Symbols

unicode 字符

docker pull v2ray/official

docker run -d –name v2ray -v /home/guoshuang/v2ray:/etc/v2ray -p 8888:8888 –restart=always v2ray/official v2ray -config=/etc/v2ray/config.json

获取 uuid

http://www.uuid.online/

{
“inbound”: {
“port”: 8888,
“protocol”: “vmess”,
“settings”: {
“clients”: [
{
“id”: “自己生成的uuid”,
“alterId”: 64
}
]
}
},
“outbound”: {
“protocol”: “freedom”,
“settings”: {}
}
}

客户端

mac

https://github.com/Cenmrev/V2RayX

win

https://github.com/Cenmrev/V2RayW

全部

https://www.v2ray.com/awesome/tools.html

no need jquery

···
function setHeight(el, val) {
if (typeof val === “function”) val = val();
if (typeof val === “string”) el.style.height = val;
else el.style.height = val + “px”;
}

setHeight(el, val);
···

function ready(fn) {
if (document.readyState != ‘loading’){
fn();
} else {
document.addEventListener(‘DOMContentLoaded’, fn);
}
}

$(el).trigger(‘change’);

// For a full list of event types: https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent

var event = document.createEvent(‘HTMLEvents’);
event.initEvent(‘change’, true, false);
el.dispatchEvent(event);

$(el).on(eventName, eventHandler);

el.addEventListener(eventName, eventHandler);

$(el).off(eventName, eventHandler);

el.removeEventListener(eventName, eventHandler);

var request = new XMLHttpRequest();
request.open(‘GET’, ‘/my/url’, true);

request.onreadystatechange = function() {
if (this.readyState === 4) {
if (this.status >= 200 && this.status < 400) {
// Success!
var resp = this.responseText;
} else {
// Error :(
}
}
};

request.send();
request = null;

loop with seq

#!/bin/bash

for n in seq 1 3 100
do
echo $n
done

loop find mv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash

for i in {1..14}
do
# echo $i
# echo 'map_'$i'*.png'

# find . -maxdepth 1 -regex '.*map_'$i'.*'


# find . -name 'map_'$i'*.png'

echo map_$i-*.png
mv map_$i-*.png 222

done

ls only folder

ls -d */

/ is a pattern that matches all of the subdirectories in the current directory ( would match all files and subdirectories; the / restricts it to directories). Similarly, to list all subdirectories under /home/alice/Documents, use ls -d /home/alice/Documents/*/

查找系统中所有文件长度为0的普通文件,并列出它们的完整路径

find / -type f -size 0 -exec ls -l {} ;

vi .bash_profile

alias lf=”ls -l | egrep -v ‘^d’”
alias ldir=’ls -d */‘

lf 只显示文件
ldir 只显示目录

ctrl+a 到开头
ctrl+e 到结尾

esc+b 向后(左)一个单词
esc+f 向前(右)一个单词

设置 iTerm2 的 preferences 的 keys

⌘← send ^[b
⌘→ send ^[f

gem source

sass 出错,重装

sudo gem install sass

报告 ssl 错误!因为: 之前淘宝的源已经无法使用

  1. 查看gem源

gem source -l

  1. 删除源

gem source -r <源地址>

3.添加源

gem sources –add https://gems.ruby-china.com


$ gem update –system # 这里请翻墙一下
$ gem -v
2.6.3

$ gem sources –add https://gems.ruby-china.com/ –remove https://rubygems.org/
$ gem sources -l
https://gems.ruby-china.com

确保只有 gems.ruby-china.com

如何搭建 https

mac 删除 顽固文件

跑程序,跑出了 超过256层嵌套的目录!!回收站无法删除

rm -R [把 trash 里面的目录拖进 终端窗口]


Type of copy the following into Terminal: sudo rm -R (there needs to be a space after the R)
But don’t press enter.
Now Control-click on your Trash icon to open it.
Select the files in your trash.
Drag them to the Terminal window.
Now press Enter
Enter your administrator password (it won’t show up)
Hit Enter

via

https://www.macworld.co.uk/how-to/mac/how-empty-trash-on-mac-3682422/

https://www.imore.com/how-force-empty-trash-your-mac-using-terminal

var view = map.getView();
var vs = layer_tile.getSource();

console.log(map.getSize());
console.log(vs.getExtent());
console.log(view.getResolution());

  • extent view 18

分辨率: 2.388657133911758 zoom 是: 16

分辨率: 0.5971642834779395 zoom 是: 18

var mm = map.getView().getResolution()/0.5971642834779395;
var sizearr = map.getSize();
var rs = [sizearr[0]*mm,sizearr[1]*mm];