0728-0803周

0728

  1. 若使用li,使用宽度33%出现了换行情况,则父元素ul标签应该设置font-size:0;

0729

  1. 在openlayers中,若发生鼠标偏移的情况,则很有可能是CSS问题导致的。在这一次遇到的问题中,由于高度设置问题,map容器出现了滚动条,但是滚动条因为被我进行了强制隐藏操作,所以鼠标出现了偏移的问题。解决的方法是:只要解决掉css导致的高度、滚动条问题,即可以解决鼠标偏移的问题;
  2. 监听地图渲染完成后的事件:
    map.once('postrender', function(event) {
        //do somethings
    });

0730

  1. 当修改了geoserver的配置文件时,会出现预览图层时报空指针的错误,目前已经查到的原因是:默认style样式文件的配置出现问题,此时需要重新配置style即可解决问题;
  2. openlayers中的ol.layer.group只有setLayers方法,可以添加图层到group中去,但是没有从group中移出图层的方法,想要移出图层,只能进行全部移出的操作,使用setLayers方法传进去一个空数组,即使用
    const group = new ol.layer.group(); 
    group.setLayers(new ol.Collection([]));

0731

  1. 在后续的开发中,应当采用每开发一个新功能,对应使用一个开发分支,保证功能使用的正确性和流畅性。具体文档参加:https://www.liaoxuefeng.com/wiki/896043488029600/896954848507552;

  2. 比较重要的就是使用bug分支,即使用git stash可以保存当前的工作状态,然后可以切换到其他分支中去;

  3. 常用的git分支操作:

    删除本地分支:git branch -d [branchname]
    强制删除本地没有merge的分支:git branch -D [branchname]
    推送本地分支到远程:git push origin [branchname]
    删除远程分支:git push origin --delete [branchname]
    拉取本地不存在的远程分支:git checkout -b 本地分支名 origin/远程分支名
  1. 其他常用的git操作:
reset hard后的恢复:git reflog(查看历史操作,从而找到版本号)
合并分支:git merge [branchname] 在当前分支上合并目标分支

0801

  1. postgis实现先用bbox选定指定范围内的数据,然后将选出的数据再进行相关的空间查询,平均耗时不稳定,在150ms左右;
select * from
	(
		SELECT gid, linecolor, proname, protype, proextent,shape_leng, shape_area, geom FROM public.kg_land_bound2 
			where geom && ST_MakeEnvelope(49521.10320887309,96831.87283041234,50109.537719075444,97307.06544746425)
	) as res 
where St_Intersects(res.geom, ST_MakeEnvelope(49701.02023537382,96951.72932012533,49865.59139784948,97115.77131487598,4547));
  1. 在不使用st_makeenvelope的情况下,进行直接的查询,消耗的平均时间为140ms;
SELECT gid, linecolor, proname, protype, proextent,shape_leng, shape_area, geom FROM public.kg_land_bound2 
			where St_Intersects(geom, ST_MakeEnvelope(49701.02023537382,96951.72932012533,49865.59139784948,97115.77131487598,4547));
  1. 之所以出现上面这种情况,是因为空间数据库中会根据geometry字段自动的生成索引覆盖,由于索引的存在,所以方法2甚至可能会比方法1还要快,毕竟方法2可以直接通过索引的方式找到指定区域,而且比方法1还要少了一个步骤。

  2. 求相交部分,给定一个大范围,使用intersects,找出与大范围相交的元素,然后再使用intersection,求出相交数据与大范围的重叠部分并且进行返回;

SELECT gid, linecolor, proname, protype, proextent,shape_leng, shape_area,  ST_Intersection(geom,ST_MakeEnvelope(49701.02023537382,96951.72932012533,49865.59139784948,97115.77131487598,4547))
FROM public.kg_land_bound2  where ST_Intersects(geom,ST_MakeEnvelope(49701.02023537382,96951.72932012533,49865.59139784948,97115.77131487598,4547))