当前位置: 首页 > news >正文

JTS Self-intersection异常TopologyException: side location conflict解决办法

JTS Self-intersection异常TopologyException: side location conflict解决办法

举例:问题围栏

MULTIPOLYGON (((114.0905685 32.1120567, 114.0905685 32.112957, 114.0905685 32.1138535, 114.0905685 32.1147537, 114.0905685 32.115654, 114.0905685 32.1165543, 114.0905685 32.1174507, 114.0905685 32.118351, 114.0905685 32.1192513, 114.0905685 32.1201515, 114.0905685 32.121048, 114.0914612 32.121048, 114.0914612 32.1212578, 114.0918121 32.121048, 114.0923615 32.1207199, 114.0932617 32.1201782, 114.0933151 32.1201515, 114.094162 32.1196404, 114.0948181 32.1192513, 114.0950623 32.1191025, 114.0959625 32.1185646, 114.0963135 32.118351, 114.0967636 32.118084, 114.0968628 32.118042, 114.0977631 32.1176682, 114.0982666 32.1174507, 114.0986557 32.1172905, 114.099556 32.1169128, 114.1004105 32.1165543, 114.1004562 32.1165352, 114.1013565 32.1161575, 114.1022568 32.1157799, 114.1025543 32.115654, 114.1022568 32.115654, 114.1013565 32.115654, 114.1004562 32.115654, 114.099556 32.115654, 114.099556 32.1165543, 114.0986557 32.1165543, 114.0986557 32.115654, 114.0977631 32.115654, 114.0968628 32.115654, 114.0968628 32.1147537, 114.0977631 32.1147537, 114.0986557 32.1147537, 114.099556 32.1147537, 114.099556 32.1138535, 114.1004562 32.1138535, 114.1004562 32.112957, 114.1013565 32.112957, 114.1013565 32.1120567, 114.1022568 32.1120567, 114.1022568 32.1111565, 114.103157 32.1111565, 114.103157 32.1102562, 114.1040573 32.1102562, 114.1040573 32.1093597, 114.103157 32.1093597, 114.103157 32.1084595, 114.1040573 32.1084595, 114.1040573 32.1075592, 114.103157 32.1075592, 114.103157 32.1066589, 114.1040573 32.1066589, 114.1049576 32.1066589, 114.1049576 32.1057625, 114.1049576 32.1048622, 114.1058502 32.1048622, 114.1058502 32.1039619, 114.1067505 32.1039619, 114.1067505 32.1030617, 114.1076508 32.1030617, 114.108551 32.1030617, 114.108551 32.1021652, 114.1094513 32.1021652, 114.1103516 32.1021652, 114.1103516 32.101265, 114.1103516 32.1003647, 114.1103516 32.0994644, 114.1103516 32.098568, 114.1103516 32.0976677, 114.1112518 32.0976677, 114.1112518 32.0967674, 114.1103516 32.0967674, 114.1094513 32.0967674, 114.108551 32.0967674, 114.108551 32.0958672, 114.108551 32.0949707, 114.108551 32.0940704, 114.1076508 32.0940704, 114.1076508 32.0949707, 114.1067505 32.0949707, 114.1067505 32.0958672, 114.1058502 32.0958672, 114.1058502 32.0949707, 114.1049576 32.0949707, 114.1040573 32.0949707, 114.1040573 32.0940704, 114.103157 32.0940704, 114.1022568 32.0940704, 114.1022568 32.0949707, 114.1022568 32.0958672, 114.1022568 32.0967674, 114.1013565 32.0967674, 114.1013565 32.0976677, 114.1004562 32.0976677, 114.1004562 32.098568, 114.099556 32.098568, 114.099556 32.0994644, 114.0986557 32.0994644, 114.0986557 32.1003647, 114.0977631 32.1003647, 114.0977631 32.101265, 114.0977631 32.1021652, 114.0986557 32.1021652, 114.0986557 32.1030617, 114.099556 32.1030617, 114.1004562 32.1030617, 114.1004562 32.1039619, 114.099556 32.1039619, 114.099556 32.1048622, 114.1004562 32.1048622, 114.1004562 32.1057625, 114.1004562 32.1066589, 114.1004562 32.1075592, 114.099556 32.1075592, 114.099556 32.1066589, 114.0986557 32.1066589, 114.0986557 32.1075592, 114.0977631 32.1075592, 114.0977631 32.1084595, 114.0968628 32.1084595, 114.0968628 32.1093597, 114.0959625 32.1093597, 114.0950623 32.1093597, 114.0950623 32.1102562, 114.094162 32.1102562, 114.094162 32.1111565, 114.0932617 32.1111565, 114.0932617 32.1102562, 114.0923615 32.1102562, 114.0923615 32.1111565, 114.0914612 32.1111565, 114.0914612 32.1120567, 114.0905685 32.1120567)), ((114.0752768 32.1282442, 114.0752768 32.1291435, 114.0752768 32.1300428, 114.0752768 32.1309422, 114.0761761 32.1309422, 114.0761761 32.1318415, 114.0761761 32.1327408, 114.0761761 32.1336401, 114.0761761 32.133748, 114.0763593 32.1336401, 114.0770754 32.1332181, 114.0778854 32.1327408, 114.0779748 32.1326881, 114.0788741 32.1321582, 114.0794116 32.1318415, 114.079594 32.131734, 114.0797734 32.1315036, 114.0802106 32.1309422, 114.0806727 32.1303487, 114.0809109 32.1300428, 114.081237 32.129624, 114.0815721 32.1293581, 114.0818426 32.1291435, 114.0824714 32.1286446, 114.082976 32.1282442, 114.0833707 32.1279311, 114.0841095 32.1273449, 114.08427 32.1272175, 114.084858 32.126751, 114.0851693 32.1264867, 114.0852177 32.1264456, 114.0860687 32.1257232, 114.0862772 32.1255462, 114.086968 32.1249597, 114.0873365 32.1246469, 114.0878673 32.1241962, 114.0883958 32.1237476, 114.0887666 32.1234328, 114.0894551 32.1228483, 114.0896659 32.1226693, 114.090108 32.122294, 114.0904915 32.121949, 114.0905653 32.1218826, 114.090855 32.121622, 114.0914646 32.121257, 114.0914646 32.1210496, 114.0905653 32.1210496, 114.0905653 32.1201503, 114.0905653 32.119251, 114.0905653 32.1183517, 114.0905653 32.1174523, 114.0896659 32.1174523, 114.0896659 32.1183517, 114.0896659 32.119251, 114.0887666 32.119251, 114.0887666 32.1201503, 114.0887666 32.1210496, 114.0878673 32.1210496, 114.0878673 32.121949, 114.0878673 32.1228483, 114.0878673 32.1237476, 114.086968 32.1237476, 114.0860687 32.1237476, 114.0860687 32.1246469, 114.0851693 32.1246469, 114.08427 32.1246469, 114.0833707 32.1246469, 114.0833707 32.1255462, 114.0824714 32.1255462, 114.0815721 32.1255462, 114.0806727 32.1255462, 114.0806727 32.1264456, 114.0797734 32.1264456, 114.0788741 32.1264456, 114.0788741 32.1273449, 114.0779748 32.1273449, 114.0770754 32.1273449, 114.0761761 32.1273449, 114.0761761 32.1282442, 114.0752768 32.1282442)))

如图:下面的围栏存在自相交问题
在这里插入图片描述
java代码在进行集合运算时会出现以下异常信息

Exception in thread "main" org.locationtech.jts.geom.TopologyException: side location conflict [ (114.0914612, 32.1210496, NaN) ]

问题原因分析

上面的围栏,小数点后存在7位小数。精度过高。将其缩减为6为小数。
java代码

import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Point;
import org.locationtech.jts.geom.PrecisionModel;
import org.locationtech.jts.io.ParseException;
import org.locationtech.jts.precision.GeometryPrecisionReducer;public class Test{public static GeometryPrecisionReducer mergeReducer =new GeometryPrecisionReducer(new PrecisionModel(1000000));public static void main(String[] args) throws ParseException {String  polyline ="MULTIPOLYGON (((114.0905685 32.1120567, 114.0905685 32.112957, 114.0905685 32.1138535, 114.0905685 32.1147537, 114.0905685 32.115654, 114.0905685 32.1165543, 114.0905685 32.1174507, 114.0905685 32.118351, 114.0905685 32.1192513, 114.0905685 32.1201515, 114.0905685 32.121048, 114.0914612 32.121048, 114.0914612 32.1212578, 114.0918121 32.121048, 114.0923615 32.1207199, 114.0932617 32.1201782, 114.0933151 32.1201515, 114.094162 32.1196404, 114.0948181 32.1192513, 114.0950623 32.1191025, 114.0959625 32.1185646, 114.0963135 32.118351, 114.0967636 32.118084, 114.0968628 32.118042, 114.0977631 32.1176682, 114.0982666 32.1174507, 114.0986557 32.1172905, 114.099556 32.1169128, 114.1004105 32.1165543, 114.1004562 32.1165352, 114.1013565 32.1161575, 114.1022568 32.1157799, 114.1025543 32.115654, 114.1022568 32.115654, 114.1013565 32.115654, 114.1004562 32.115654, 114.099556 32.115654, 114.099556 32.1165543, 114.0986557 32.1165543, 114.0986557 32.115654, 114.0977631 32.115654, 114.0968628 32.115654, 114.0968628 32.1147537, 114.0977631 32.1147537, 114.0986557 32.1147537, 114.099556 32.1147537, 114.099556 32.1138535, 114.1004562 32.1138535, 114.1004562 32.112957, 114.1013565 32.112957, 114.1013565 32.1120567, 114.1022568 32.1120567, 114.1022568 32.1111565, 114.103157 32.1111565, 114.103157 32.1102562, 114.1040573 32.1102562, 114.1040573 32.1093597, 114.103157 32.1093597, 114.103157 32.1084595, 114.1040573 32.1084595, 114.1040573 32.1075592, 114.103157 32.1075592, 114.103157 32.1066589, 114.1040573 32.1066589, 114.1049576 32.1066589, 114.1049576 32.1057625, 114.1049576 32.1048622, 114.1058502 32.1048622, 114.1058502 32.1039619, 114.1067505 32.1039619, 114.1067505 32.1030617, 114.1076508 32.1030617, 114.108551 32.1030617, 114.108551 32.1021652, 114.1094513 32.1021652, 114.1103516 32.1021652, 114.1103516 32.101265, 114.1103516 32.1003647, 114.1103516 32.0994644, 114.1103516 32.098568, 114.1103516 32.0976677, 114.1112518 32.0976677, 114.1112518 32.0967674, 114.1103516 32.0967674, 114.1094513 32.0967674, 114.108551 32.0967674, 114.108551 32.0958672, 114.108551 32.0949707, 114.108551 32.0940704, 114.1076508 32.0940704, 114.1076508 32.0949707, 114.1067505 32.0949707, 114.1067505 32.0958672, 114.1058502 32.0958672, 114.1058502 32.0949707, 114.1049576 32.0949707, 114.1040573 32.0949707, 114.1040573 32.0940704, 114.103157 32.0940704, 114.1022568 32.0940704, 114.1022568 32.0949707, 114.1022568 32.0958672, 114.1022568 32.0967674, 114.1013565 32.0967674, 114.1013565 32.0976677, 114.1004562 32.0976677, 114.1004562 32.098568, 114.099556 32.098568, 114.099556 32.0994644, 114.0986557 32.0994644, 114.0986557 32.1003647, 114.0977631 32.1003647, 114.0977631 32.101265, 114.0977631 32.1021652, 114.0986557 32.1021652, 114.0986557 32.1030617, 114.099556 32.1030617, 114.1004562 32.1030617, 114.1004562 32.1039619, 114.099556 32.1039619, 114.099556 32.1048622, 114.1004562 32.1048622, 114.1004562 32.1057625, 114.1004562 32.1066589, 114.1004562 32.1075592, 114.099556 32.1075592, 114.099556 32.1066589, 114.0986557 32.1066589, 114.0986557 32.1075592, 114.0977631 32.1075592, 114.0977631 32.1084595, 114.0968628 32.1084595, 114.0968628 32.1093597, 114.0959625 32.1093597, 114.0950623 32.1093597, 114.0950623 32.1102562, 114.094162 32.1102562, 114.094162 32.1111565, 114.0932617 32.1111565, 114.0932617 32.1102562, 114.0923615 32.1102562, 114.0923615 32.1111565, 114.0914612 32.1111565, 114.0914612 32.1120567, 114.0905685 32.1120567)), ((114.0752768 32.1282442, 114.0752768 32.1291435, 114.0752768 32.1300428, 114.0752768 32.1309422, 114.0761761 32.1309422, 114.0761761 32.1318415, 114.0761761 32.1327408, 114.0761761 32.1336401, 114.0761761 32.133748, 114.0763593 32.1336401, 114.0770754 32.1332181, 114.0778854 32.1327408, 114.0779748 32.1326881, 114.0788741 32.1321582, 114.0794116 32.1318415, 114.079594 32.131734, 114.0797734 32.1315036, 114.0802106 32.1309422, 114.0806727 32.1303487, 114.0809109 32.1300428, 114.081237 32.129624, 114.0815721 32.1293581, 114.0818426 32.1291435, 114.0824714 32.1286446, 114.082976 32.1282442, 114.0833707 32.1279311, 114.0841095 32.1273449, 114.08427 32.1272175, 114.084858 32.126751, 114.0851693 32.1264867, 114.0852177 32.1264456, 114.0860687 32.1257232, 114.0862772 32.1255462, 114.086968 32.1249597, 114.0873365 32.1246469, 114.0878673 32.1241962, 114.0883958 32.1237476, 114.0887666 32.1234328, 114.0894551 32.1228483, 114.0896659 32.1226693, 114.090108 32.122294, 114.0904915 32.121949, 114.0905653 32.1218826, 114.090855 32.121622, 114.0914646 32.121257, 114.0914646 32.1210496, 114.0905653 32.1210496, 114.0905653 32.1201503, 114.0905653 32.119251, 114.0905653 32.1183517, 114.0905653 32.1174523, 114.0896659 32.1174523, 114.0896659 32.1183517, 114.0896659 32.119251, 114.0887666 32.119251, 114.0887666 32.1201503, 114.0887666 32.1210496, 114.0878673 32.1210496, 114.0878673 32.121949, 114.0878673 32.1228483, 114.0878673 32.1237476, 114.086968 32.1237476, 114.0860687 32.1237476, 114.0860687 32.1246469, 114.0851693 32.1246469, 114.08427 32.1246469, 114.0833707 32.1246469, 114.0833707 32.1255462, 114.0824714 32.1255462, 114.0815721 32.1255462, 114.0806727 32.1255462, 114.0806727 32.1264456, 114.0797734 32.1264456, 114.0788741 32.1264456, 114.0788741 32.1273449, 114.0779748 32.1273449, 114.0770754 32.1273449, 114.0761761 32.1273449, 114.0761761 32.1282442, 114.0752768 32.1282442)))";Geometry geometry = GeometryUtil.readGeometry(polyline);System.out.println(geometry.isValid());Geometry reduce = mergeReducer.reduce(geometry);System.out.println(reduce);System.out.println(reduce.isValid());}
}

精度缩小到6位小数后,围栏数据

POLYGON ((114.075277 32.128244, 114.075277 32.129143, 114.075277 32.130043, 114.075277 32.130942, 114.076176 32.130942, 114.076176 32.131842, 114.076176 32.132741, 114.076176 32.13364, 114.076176 32.133748, 114.076359 32.13364, 114.077075 32.133218, 114.077885 32.132741, 114.077975 32.132688, 114.078874 32.132158, 114.079412 32.131842, 114.079594 32.131734, 114.079773 32.131504, 114.080211 32.130942, 114.080673 32.130349, 114.080911 32.130043, 114.081237 32.129624, 114.081572 32.129358, 114.081843 32.129143, 114.082471 32.128645, 114.082976 32.128244, 114.083371 32.127931, 114.08411 32.127345, 114.08427 32.127218, 114.084858 32.126751, 114.085169 32.126487, 114.085218 32.126446, 114.086069 32.125723, 114.086277 32.125546, 114.086968 32.12496, 114.087337 32.124647, 114.087867 32.124196, 114.088396 32.123748, 114.088767 32.123433, 114.089455 32.122848, 114.089666 32.122669, 114.090108 32.122294, 114.090492 32.121949, 114.090565 32.121883, 114.090855 32.121622, 114.091465 32.121257, 114.091465 32.121256, 114.091812 32.121048, 114.092362 32.12072, 114.093262 32.120178, 114.093315 32.120152, 114.094162 32.11964, 114.094818 32.119251, 114.095062 32.119102, 114.095963 32.118565, 114.096314 32.118351, 114.096764 32.118084, 114.096863 32.118042, 114.097763 32.117668, 114.098267 32.117451, 114.098656 32.117291, 114.099556 32.116913, 114.100411 32.116554, 114.100456 32.116535, 114.101357 32.116158, 114.102257 32.11578, 114.102554 32.115654, 114.102257 32.115654, 114.101357 32.115654, 114.100456 32.115654, 114.099556 32.115654, 114.099556 32.116554, 114.098656 32.116554, 114.098656 32.115654, 114.097763 32.115654, 114.096863 32.115654, 114.096863 32.114754, 114.097763 32.114754, 114.098656 32.114754, 114.099556 32.114754, 114.099556 32.113853, 114.100456 32.113853, 114.100456 32.112957, 114.101357 32.112957, 114.101357 32.112057, 114.102257 32.112057, 114.102257 32.111157, 114.103157 32.111157, 114.103157 32.110256, 114.104057 32.110256, 114.104057 32.10936, 114.103157 32.10936, 114.103157 32.10846, 114.104057 32.10846, 114.104057 32.107559, 114.103157 32.107559, 114.103157 32.106659, 114.104057 32.106659, 114.104958 32.106659, 114.104958 32.105762, 114.104958 32.104862, 114.10585 32.104862, 114.10585 32.103962, 114.106751 32.103962, 114.106751 32.103062, 114.107651 32.103062, 114.108551 32.103062, 114.108551 32.102165, 114.109451 32.102165, 114.110352 32.102165, 114.110352 32.101265, 114.110352 32.100365, 114.110352 32.099464, 114.110352 32.098568, 114.110352 32.097668, 114.111252 32.097668, 114.111252 32.096767, 114.110352 32.096767, 114.109451 32.096767, 114.108551 32.096767, 114.108551 32.095867, 114.108551 32.094971, 114.108551 32.09407, 114.107651 32.09407, 114.107651 32.094971, 114.106751 32.094971, 114.106751 32.095867, 114.10585 32.095867, 114.10585 32.094971, 114.104958 32.094971, 114.104057 32.094971, 114.104057 32.09407, 114.103157 32.09407, 114.102257 32.09407, 114.102257 32.094971, 114.102257 32.095867, 114.102257 32.096767, 114.101357 32.096767, 114.101357 32.097668, 114.100456 32.097668, 114.100456 32.098568, 114.099556 32.098568, 114.099556 32.099464, 114.098656 32.099464, 114.098656 32.100365, 114.097763 32.100365, 114.097763 32.101265, 114.097763 32.102165, 114.098656 32.102165, 114.098656 32.103062, 114.099556 32.103062, 114.100456 32.103062, 114.100456 32.103962, 114.099556 32.103962, 114.099556 32.104862, 114.100456 32.104862, 114.100456 32.105762, 114.100456 32.106659, 114.100456 32.107559, 114.099556 32.107559, 114.099556 32.106659, 114.098656 32.106659, 114.098656 32.107559, 114.097763 32.107559, 114.097763 32.10846, 114.096863 32.10846, 114.096863 32.10936, 114.095963 32.10936, 114.095062 32.10936, 114.095062 32.110256, 114.094162 32.110256, 114.094162 32.111157, 114.093262 32.111157, 114.093262 32.110256, 114.092362 32.110256, 114.092362 32.111157, 114.091461 32.111157, 114.091461 32.112057, 114.090569 32.112057, 114.090569 32.112957, 114.090569 32.113853, 114.090569 32.114754, 114.090569 32.115654, 114.090569 32.116554, 114.090569 32.117451, 114.090569 32.118351, 114.090569 32.119251, 114.090569 32.120152, 114.090569 32.121048, 114.091461 32.121048, 114.091461 32.12105, 114.090565 32.12105, 114.090565 32.12015, 114.090565 32.119251, 114.090565 32.118352, 114.090565 32.117452, 114.089666 32.117452, 114.089666 32.118352, 114.089666 32.119251, 114.088767 32.119251, 114.088767 32.12015, 114.088767 32.12105, 114.087867 32.12105, 114.087867 32.121949, 114.087867 32.122848, 114.087867 32.123748, 114.086968 32.123748, 114.086069 32.123748, 114.086069 32.124647, 114.085169 32.124647, 114.08427 32.124647, 114.083371 32.124647, 114.083371 32.125546, 114.082471 32.125546, 114.081572 32.125546, 114.080673 32.125546, 114.080673 32.126446, 114.079773 32.126446, 114.078874 32.126446, 114.078874 32.127345, 114.077975 32.127345, 114.077075 32.127345, 114.076176 32.127345, 114.076176 32.128244, 114.075277 32.128244))

JTS TestBuilder检查围栏是否有效(如下图所示,已经正常)

在这里插入图片描述

相关文章:

JTS Self-intersection异常TopologyException: side location conflict解决办法

JTS Self-intersection异常TopologyException: side location conflict解决办法 举例:问题围栏 MULTIPOLYGON (((114.0905685 32.1120567, 114.0905685 32.112957, 114.0905685 32.1138535, 114.0905685 32.1147537, 114.0905685 32.115654, 114.0905685 32.11655…...

Maven: No compiler is provided in this environment.

在Eclipse中运行Maven项目,报错: No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 解决方法: Windows > Preferences > Java > Installed JREs > Add > Standard VM,…...

.NET-10. 其他-VSTO+VBA

VSTOVBA 前言VSTO 外接程序介绍:VSTO参考链接:VSTO 例子: VBA:参考链接: 前言 主要用于Excel插件。 VSTO 外接程序介绍: Excel、Word、PowerPoint、Project、Visio等等Office应用程序 相对简单 VSTO参考链接&#x…...

相机传感器格式与镜头光圈参数

相机靶面大小 CCD/CMOS图像传感器尺寸(sensor format)1/2’‘、1/3’‘、1/4’实际是多大 1英寸——靶面尺寸为宽12.7mm*高9.6mm,对角线16mm。 2/3英寸——靶面尺寸为宽8.8mm*高6.6mm,对角线11mm。 1/2英寸——靶面尺寸为宽6.…...

Android 设置头像(拍照获取、相册获取、裁剪照片)

在Android原生态开发过程中,往往会设计到用户头像的设置问题,一般来讲设置头像需要用到拍照、获取照片、存储照片、裁剪照片、显示照片等问题,本文将一步一步的进行说明讲解。 首先需要强调几点我在开发过程中遇到的问题。 权限问题&#xf…...

android开发之Android 自定义滑动解锁View

自定义滑动解锁View 需求如下: 近期需要做一个类似屏幕滑动解锁的功能,右划开始,左划暂停。 需求效果图如下 实现效果展示 自定义view如下 /** Desc 自定义滑动解锁View Author ZY Mail sunnyfor98gmail.com Date 2021/5/17 11:52 *…...

CAD绘制法兰、添加光源、材质并渲染

首先绘制两个圆柱体,相互嵌套 在顶部继续绘制圆柱体,这是之后要挖掉的部分 在中央位置绘制正方形 用圆角工具: 将矩形的四个角分别处理,效果: 用拉伸工具 向上拉伸到和之前绘制的圆柱体高度齐平 绘制一个圆柱体&#…...

ChatGPT访问流量下降的原因分析

​自从OpenAI的ChatGPT于11月问世以来,这款聪明的人工智能聊天机器人就席卷了全世界,人们在试用该工具的同时也好奇该技术到底将如何改变我们的工作和生活。 但近期Similarweb表示,自去ChatGPT上线以来,该网站的访问量首次出现下…...

干货 | 详述 Elasticsearch 向量检索发展史

1. 引言 向量检索已经成为现代搜索和推荐系统的核心组件。 通过将复杂的对象(例如文本、图像或声音)转换为数值向量,并在多维空间中进行相似性搜索,它能够实现高效的查询匹配和推荐。 图片来自:向量数据库技术鉴赏【上…...

mysql常见面试题,高频题目放送

互联网的产品架构是包含这接入层,逻辑处理以及储存层的,其中储存层承载着较多的数据以及持久化的任务,而说到储存层,避免不了说到数据库,在我们面试的时候,数据库的知识题目占比是非常多的: 1.…...

使用 PowerShell 将 Excel 中的每个工作表单独另存为独立的文件

导语:在日常工作中,我们经常需要处理 Excel 文件。本文介绍了如何使用 PowerShell 脚本将一个 Excel 文件中的每个工作表单独另存为独立的 Excel 文件,以提高工作效率。 1. 准备工作 在开始之前,请确保已经安装了 Microsoft Exc…...

python提取pdf图片

import fitz import re import osdef save_pdf_img(path, save_path):path: pdf的路径save_path : 图片存储的路径# 使用正则表达式来查找图片checkXO r"/Type(? */XObject)"checkIM r"/Subtype(? */Image)"# 打开pdfdoc fitz.open(path)# 图片计数im…...

Vue3 表单输入绑定简单应用

去官网学习→表单输入绑定 | Vue.js 运行示例&#xff1a; 代码&#xff1a;HelloWorld.vue <template><div class"hello"><h1>Vue 表单输入绑定</h1><input type"text" placeholder"输入框" v-model"msg"…...

如何解决 Elasticsearch 查询缓慢的问题以获得更好的用户体验

作者&#xff1a;Philipp Kahr Elasticsearch Service 用户的重要注意事项&#xff1a;目前&#xff0c;本文中描述的 Kibana 设置更改仅限于 Cloud 控制台&#xff0c;如果没有我们支持团队的手动干预&#xff0c;则无法进行配置。 我们的工程团队正在努力消除对这些设置的限制…...

近期学习练习

练习&#xff1a; 或&#xff1a; //sqrt是数学库函数&#xff0c;开平方 //头文件为math.h 或...

平台安全之中间件安全

理解中间件 一次web访问的顺序&#xff0c;web浏览器->web服务器&#xff08;狭义&#xff09;->web容器->应用服务器->数据库服务器 web服务器 广义&#xff1a;提供广义web服务的软件或主机 狭义&#xff1a;提供w3服务的软件或主机&#xff0c;即Web服务器软件…...

芒果 TV 基于 Flink 的实时数仓建设实践

公司简介&#xff1a;芒果 TV 作为湖南广电旗下互联网视频平台&#xff0c;在“一云多屏&#xff0c;多元一体”的战略指导下&#xff0c;通过内容自制&#xff0c;培植核心竞争力&#xff0c;从独播、独特走向独创&#xff0c;并通过市场化运作完成 A 轮、B 轮融资&#xff0c…...

尚硅谷大数据项目《在线教育之采集系统》笔记004

视频地址&#xff1a;尚硅谷大数据项目《在线教育之采集系统》_哔哩哔哩_bilibili 目录 P047 P048 P049 P050 P051 P052 P053 P054 P055 P056 P047 /opt/module/datax/job/base_province.json [atguigunode001 ~]$ hadoop fs -mkdir /base_province/2022-02-22 [atgu…...

R语言4_安装BayesSpace

环境Ubuntu22/20, R4.1 你可能会报错说你的R语言版本没有这个库&#xff0c;但其实不然。这是一个在Bioconductor上的库。 同时我也碰到了这个问题&#xff0c;ERROR: configuration failed for package systemfonts’等诸多类似问题&#xff0c;下面的方法可以一并解决。 第…...

TSINGSEE青犀视频安防监控视频平台EasyCVR设备在线,视频无法播放的原因排查

可支持国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等多种协议接入的安防监控视频平台EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...