专栏目录:
OpenLayers实战进阶专栏目录
前言
OpenLayers实战,OpenLayers判断点位是否与多边形有交集,可以用于判断车辆是否在电子围栏内,船舶是否在锚泊位中等常用案例。
适用于后台服务的大规模数据量下的点位是否与多边形交集的计算:《使用Java的GeoTools地理库计算某个点是否在多边形内,经纬度数组转换为wkt格式数据》
在实际GIS地图业务开发中,一般是不会在前端实现是否在电子围栏这种计算的。一般会在后台进行批量计算,后台服务计算参考上面的《使用Java的GeoTools地理库计算某个点是否在多边形内,经纬度数组转换为wkt格式数据》。
如果有人让你在前端实现,那肯定在坑你,可以用下面的原因分析堵他嘴。
原因有两点:
1、前端性能太差,计算太慢。前端计算交集的速度远比后端c/c++或者java计算要慢太多,后端只需要用一个sql语句就可以筛出所有在电子围栏内的数据,而前端要一个一个去跟电子围栏去计算交集。
2、容易导致浏览器变慢甚至崩溃。一般出现需要判断是否在电子围栏内,比如共享单车、车辆、船舶等等,数量都很大,如果在前端一个个去比对,超大的计算量势必会让浏览器变慢或者浏览器直接崩溃。