SDO_BUFFER对多面体无法正常工作

时间:2018-08-15 12:52:46

标签: oracle polygon spatial oracle-spatial

我有一个包含两列的表(均为SDO_GEOMETRY类型):GEOMETRY,GEOMETRY_BUF。 DIMs described here

GEOMETRY具有多面数据,而GEOMETRY_BUF最初为空。

在这种情况下,多边形由三个多边形组成。他们中的两个彼此相距很近,而第三个彼此相距很远。 如果我对GEOMETRY进行拍照,则会看到此multipolygon

我想在源GEOMETRY周围创建一个缓冲区(40米),并将其存储在GEOMETRY_BUF列中。

当我这样做

UPDATE <table_name> o
   SET GEOMETRY_buf =
          SDO_GEOM.sdo_buffer (o.geometry,
                               40,
                               0.005,
                               'unit=Meter')     

我得到这个result。两个最接近的多边形被缓冲,第三个不被缓冲。为什么? SDO_BUFFER是否正确工作?如何获得多多边形中所有多边形的缓冲区?

例如,我在WKT中导出了多面:

MULTIPOLYGON (((11517.3061 -9316.7092, 11529.4693 -9333.942, 11555.3268 -9327.1603, 11562.6917 -9326.0185, 11566.605 -9324.4166, 11571.5728 -9322.2463, 11586.1288 -9304.1955, 11586.3399 -9301.5948, 11587.3251 -9298.9264, 11592.4594 -9286.2345, 11593.9652 -9284.8561, 11595.4255 -9284.1372, 11596.5791 -9283.6721, 11599.1906 -9272.413, 11598.7147 -9270.787, 11598.6688 -9269.7593, 11598.9953 -9267.4162, 11599.2833 -9260.5784, 11600.4061 -9254.4651, 11600.8117 -9252.2374, 11601.9351 -9246.7015, 11604.1515 -9232.7613, 11607.0962 -9232.6711, 11615.6972 -9170.744, 11616.4172 -9162.8411, 11616.6891 -9158.0432, 11627.6428 -9094.6279, 11629.6001 -9095.5922, 11629.3366 -9092.1316, 11631.5555 -9082.0765, 11632.8241 -9083.1318, 11634.5937 -9075.8674, 11635.0901 -9073.2819, 11635.9144 -9070.4804, 11636.6806 -9067.7817, 11638.1409 -9061.6117, 11633.7683 -9058.316, 11646.0166 -9040.509, 11641.0401 -9037.0454, 11653.3747 -9021.7212, 11650.196 -9018.1182, 11648.4066 -9018.2336, 11644.782 -9015.2088, 11650.852 -9010.3256, 11654.2871 -9009.2253, 11669.9179 -9010.2253, 11720.1392 -9016.1985, 11731.7194 -9017.3642, 11731.5166 -9019.2802, 11736.6782 -9019.9719, 11736.7853 -9018.7664, 11749.4779 -9021.0705, 11765.8132 -9026.2263, 11857.5513 -9037.9299, 11966.7418 -9051.5303, 11972.4873 -9052.451, 11994.0993 -9055.6882, 11996.1523 -9056.1488, 11999.63 -9053.9715, 12003.9456 -9053.3434, 12014.7974 -9053.8877, 12017.661 -9054.3485, 12022.7308 -9054.8928, 12025.161 -9054.8928, 12031.1944 -9055.2278, 12035.5519 -9057.4889, 12038.6524 -9061.0479, 12043.7444 -9060.8216, 12077.8782 -9062.1275, 12084.4548 -9063.3493, 12113.8626 -9063.9861, 12128.2805 -9064.1125, 12130.3243 -9063.9469, 12150.4336 -9063.2307, 12167.0437 -9062.4302, 12176.091 -9062.2625, 12199.5307 -9059.4819, 12202.6969 -9059.2285, 12231.4571 -9055.896, 12243.5404 -9054.5544, 12245.7198 -9053.4103, 12274.8773 -9048.3674, 12290.6727 -9050.8067, 12294.9517 -9050.0068, 12327.292 -9042.063, 12344.4067 -9037.7978, 12346.242 -9037.4565, 12391.9687 -9023.8071, 12398.1063 -9020.9474, 12408.3162 -9018.1104, 12429.1036 -9011.8187, 12430.8981 -9011.0625, 12449.412 -9003.7979, 12452.021 -9002.1045, 12469.1388 -8995.9601, 12477.3695 -8991.5786, 12485.0655 -8987.2142, 12490.8813 -8986.5569, 12496.5895 -8984.2888, 12500.2345 -8981.4022, 12496.6582 -8979.3404, 12503.9482 -8976.8661, 12505.9427 -8974.873, 12508.5561 -8973.5671, 12526.9668 -8964.5841, 12527.7841 -8964.1724, 12527.0391 -8962.6698, 12525.9945 -8959.9635, 12545.0275 -8949.9202, 12537.6746 -8935.4885, 12522.0017 -8943.8274, 12519.5198 -8939.6064, 12516.6895 -8940.6073, 12515.3832 -8940.4332, 12514.0541 -8941.2897, 12508.3293 -8944.0449, 12495.4599 -8950.4538, 12468.1586 -8962.986, 12444.6639 -8972.5394, 12428.2482 -8978.8925, 12400.9305 -8988.7393, 12394.4426 -8991.1326, 12388.8952 -8994.0223, 12383.4503 -8997.1529, 12378.6102 -8999.4454, 12364.5548 -9003.9435, 12352.9546 -9007.5255, 12338.5855 -9011.7029, 12326.9941 -9014.5796, 12316.5813 -9017.4109, 12306.2679 -9019.8897, 12275.8562 -9026.4099, 12245.4496 -9031.7417, 12244.8164 -9031.1515, 12243.7607 -9028.9633, 12243.4366 -9024.2847, 12242.5967 -9013.3541, 12241.7196 -9002.0434, 12240.8619 -8990.8109, 12240.6915 -8987.5548, 12240.2224 -8985.5038, 12239.1962 -8982.6324, 12236.5281 -8979.1164, 12233.2102 -8975.5594, 12224.3816 -8967.0235, 12219.2801 -8962.2476, 12216.6083 -8958.9244, 12215.4355 -8956.4339, 12214.7318 -8952.6542, 12214.3789 -8946.7751, 12213.9674 -8943.4579, 12205.4844 -8943.3108, 12193.6645 -8942.6623, 12187.8324 -8942.4268, 12179.0549 -8941.8675, 12178.5575 -8952.025, 12173.9688 -8951.9348, 12173.2373 -8956.6863, 12137.179 -8956.148, 12096.9046 -8955.5806, 12072.6849 -8955.0751, 12071.8174 -8959.7383, 12071.0884 -8962.767, 12069.4055 -8966.8211, 12066.5207 -8971.7762, 12055.2777 -8987.8869, 12053.1284 -8993.4112, 12047.2713 -9017.5838, 12044.7177 -9027.5265, 12042.7207 -9032.159, 12041.0314 -9034.3577, 12030.2937 -9033.259, 12025.1998 -9032.5631, 12018.5597 -9031.8282, 12008.7749 -9030.5464, 11993.9822 -9028.8158, 11964.1147 -9025.1168, 11931.9949 -9021.2305, 11903.2389 -9017.5607, 11869.9007 -9013.3788, 11854.2524 -9011.4378, 11849.3783 -9010.7419, 11833.972 -9008.9627, 11820.2536 -9007.0812, 11811.0943 -9006.0119, 11806.4564 -9005.5227, 11799.3724 -9004.726, 11788.9519 -9003.4448, 11779.9774 -9002.3294, 11762.6791 -9000.302, 11745.7853 -8998.3151, 11733.713 -8996.7672, 11720.8818 -8995.3079, 11710.4156 -8993.782, 11704.9489 -8993.0308, 11701.0088 -8992.5708, 11695.6894 -8992.0022, 11695.4709 -8993.2528, 11673.4915 -8989.4577, 11658.8434 -8987.8902, 11651.3959 -8987.6881, 11643.9279 -8988.2379, 11638.6407 -8990.2075, 11633.2176 -8995.5848, 11627.7199 -9005.2128, 11630.2139 -9006.0015, 11633.1601 -9005.7462, 11631.4338 -9009.3567, 11629.8444 -9013.3731, 11628.1059 -9022.7272, 11620.7125 -9065.8639, 11612.6646 -9112.3891, 11606.0407 -9149.0436, 11598.7388 -9190.8477, 11593.518 -9190.0813, 11593.4893 -9190.3618, 11591.7738 -9202.1942, 11589.7359 -9216.182, 11592.211 -9216.5848, 11591.4994 -9221.1432, 11590.0714 -9231.6108, 11588.6906 -9239.0181, 11586.804 -9249.3457, 11584.3679 -9262.3566, 11581.9729 -9275.2702, 11580.8806 -9278.5236, 11579.6367 -9283.8945, 11578.7402 -9287.6448, 11576.8692 -9293.0215, 11576.206 -9294.8746, 11577.4629 -9295.5171, 11576.1189 -9297.1819, 11574.2319 -9299.1565, 11570.3322 -9302.0706, 11566.4074 -9303.6443, 11517.3061 -9316.7092)), ((10538.4742 -8841.2167, 10538.6639 -8841.5457, 10544.9465 -8853.5, 10551.3783 -8872.8042, 10554.5243 -8884.1815, 10555.2509 -8885.8567, 10557.827 -8886.6746, 10559.0489 -8888.9592, 10571.6983 -8902.7622, 10574.545 -8905.3676, 10580.8993 -8903.8126, 10597.1667 -8902.4227, 10616.3734 -8901.9774, 10635.512 -8901.6073, 10637.4876 -8901.9308, 10638.6234 -8903.6374, 10639.3915 -8906.6898, 10642.8334 -8906.4259, 10648.2058 -8905.5424, 10665.7825 -8907.31, 10681.0741 -8909.263, 10681.6512 -8909.2836, 10682.1315 -8909.2608, 10693.8507 -8910.3155, 10731.3851 -8914.7496, 10733.0698 -8915.0904, 10735.9988 -8915.7746, 10750.5638 -8917.5374, 10753.8272 -8917.8934, 10757.1473 -8918.3705, 10787.7923 -8922.1505, 10794.3772 -8923.1417, 10815.6217 -8925.8811, 10816.9768 -8926.095, 10818.1847 -8926.3152, 10850.1503 -8930.1685, 10851.2995 -8930.3241, 10852.1192 -8930.4447, 10868.2313 -8932.2611, 10869.3052 -8932.3788, 10870.1776 -8932.4695, 10905.0859 -8936.5665, 10907.4676 -8936.6715, 10910.3953 -8936.6376, 10939.4131 -8939.2791, 10940.8482 -8939.4525, 10950.2279 -8940.0207, 10952.7124 -8940.8332, 10959.8717 -8942.8604, 10975.9668 -8944.922, 10981.9756 -8945.3701, 11000.7514 -8947.7017, 11009.3897 -8948.7799, 11015.5355 -8949.6099, 11043.6417 -8952.9002, 11044.5144 -8952.9856, 11045.2173 -8953.0615, 11067.3801 -8955.8486, 11088.9024 -8958.4083, 11092.6234 -8958.7459, 11095.6822 -8958.9571, 11135.1145 -8963.8183, 11140.6309 -8964.0983, 11145.0648 -8964.3669, 11162.6926 -8966.6076, 11163.3881 -8966.7434, 11164.0096 -8966.8596, 11180.5324 -8969.1097, 11199.5574 -8971.4323, 11221.0843 -8974.2465, 11239.2522 -8976.8548, 11245.1983 -8978.5082, 11251.235 -8980.8821, 11250.3725 -8978.6263, 11246.1124585523 -8971.80830570151, 11242.56 -8969.44, 11231.7364552193 -8948.84886602689, 11217.0541 -8925.6894, 11213.3112 -8917.3115, 11210.1468 -8918.8818, 11205.3016 -8920.782, 11199.9478 -8922.4514, 11191.2742 -8923.3632, 11183.0279 -8922.6215, 11106.6557 -8912.6317, 11082.6826 -8909.0616, 11075.3835 -8908.3282, 11065.6164 -8907.122, 11051.3778 -8905.5613, 11013.6152 -8900.7517, 10936.1757 -8890.3295, 10931.6433 -8889.8599, 10905.6915 -8886.3948, 10903.3464 -8885.8436, 10875.8391 -8882.2496, 10874.6141 -8894.5925, 10864.2529 -8893.1555, 10845.4027 -8891.1401, 10841.7585 -8890.7481, 10828.2582 -8889.1333, 10807.0956 -8886.6983, 10797.1383 -8885.9752, 10793.1993 -8885.8332, 10786.118 -8885.2747, 10773.3137 -8884.339, 10773.5838 -8873.6785, 10774.3714 -8870.8341, 10772.3193 -8870.678, 10736.8864 -8866.4972, 10720.866 -8864.9853, 10699.0454 -8862.6108, 10676.7543 -8860.422, 10635.4306 -8856.0725, 10621.9695 -8853.8424, 10618.4888 -8853.2852, 10606.0549 -8851.5404, 10565.5093 -8843.3367, 10540.9357 -8838.9567, 10538.4742 -8841.2167)), ((10221.8371 -8957.8509, 10217.1186 -8962.6979, 10219.0379729471 -8964.10190901034, 10220.6004 -8961.6653, 10232.954 -8970.56, 10233.8362905777 -8971.28528018161, 10235.2527 -8969.9665, 10240.0855 -8966.6092, 10244.616 -8964.6875, 10255.769 -8961.7291, 10268.9498 -8959.8529, 10290.5463 -8956.7022, 10301.3344 -8955.6404, 10321.9246 -8952.0537, 10331.5377 -8949.8614, 10345.8532 -8947.2152, 10347.3674 -8947.0233, 10349.2175 -8946.8118, 10358.8055 -8945.0906, 10372.8704 -8942.2893, 10374.694 -8941.9433, 10377.1011 -8941.5033, 10380.9646 -8940.7237, 10380.428 -8938.4085, 10380.6233 -8937.3177, 10382.1165 -8935.5334, 10383.1352 -8934.4308, 10386.9636 -8933.4023, 10423.2803 -8926.4318, 10452.4406 -8920.8922, 10481.5725 -8915.3077, 10487.8745 -8914.5586, 10491.0085 -8913.9281, 10505.4779 -8913.9322, 10501.0623 -8883.1909, 10493.401 -8890.3654, 10491.2496 -8892.2846, 10481.7211 -8898.5785, 10476.3494 -8901.8754, 10468.6564 -8903.8349, 10440.8296 -8909.3713, 10425.5145 -8911.9444, 10397.8383 -8917.0854, 10397.5418 -8915.6779, 10391.6426 -8916.0696, 10385.1585 -8917.1572, 10384.9504 -8915.73, 10379.3754 -8916.7551, 10379.7809 -8918.4479, 10373.2752 -8919.8289, 10366.7923 -8921.4868, 10366.8454 -8922.952, 10360.5463 -8924.1291, 10359.3586 -8915.993, 10356.6492 -8916.5285, 10349.5194 -8917.7408, 10350.0602 -8920.6712, 10348.4466 -8920.9851, 10349.0963 -8925.2217, 10348.7279 -8926.2747, 10304.2728 -8934.49, 10302.8419 -8934.7084, 10300.8211 -8934.5268, 10298.7765 -8932.7239, 10296.5626 -8930.0269, 10287.0894 -8932.3249, 10287.0894 -8936.0426, 10286.2385 -8938.1585, 10284.9042 -8939.4247, 10271.4539 -8942.1365, 10270.3542 -8942.3011, 10261.2789 -8944.0258, 10239.8799 -8947.9821, 10237.935 -8948.5705, 10226.9395 -8953.7191, 10221.8371 -8957.8509)))

1 个答案:

答案 0 :(得分:0)

最近我自己也遇到过类似的“错误”。 我有2个问题:1)这个多多边形是否通过sdo_geom.validate_geometry?和2)在其他公差值(例如0.00005)下,您得到的结果是否相同(错误)?