The commonly used Plane Sweep algorithm in the spatial relationship query is a serial algorithm, when dealing with huge amounts of spatial data, the efficiency is very low,and the existing parallel computing method is not applicable to normal computer. Aiming at this problem, this paper proposes a parallel algorithm of spatial relationship query between polygons based on heterogeneous multi-core architecture. The algorithm uses STR-tree index to filter out non-intersection polygons first, then decomposes the filtered polygons data into points set and edges set, and constructs a quadtree index for them; under the premise of data accuracy meets the requirement of floating point calculation, uses GPU's powerful batch computing power quickly processing the intersection between edges and calculates the topology relationship between rings, then uses the topology relationship between rings to calculate the DE-9IM model between polygons; compares the DE-9IM model with spatial relationship query condition and outputs the query results. At last, the efficiency and accuracy of the algorithm is verified by experiment.
XIE Chuanjie
,
LONG Zhou
,
MA Yihang
,
YOU Zhijie
. Parallel Algorithm of Spatial Relationship Query between Polygons Based on Heterogeneous Multi-core Architecture[J]. Acta Geodaetica et Cartographica Sinica, 2016
, 45(1)
: 119
-126
.
DOI: 10.11947/j.AGCS.2016.20140463
[1] 王结臣, 王豹, 胡玮, 等. 并行空间分析算法研究进展及评述[J]. 地理与地理信息科学, 2011, 27(6): 1-5. WANG Jiechen, WANG Bao, HU wei, et al. Review on Parallel Spatial Analysis Algorithms[J]. Geography and Geo-Information Science, 2011, 27(6): 1-5.
[2] 陈军, 赵仁亮. GIS空间关系的基本问题与研究进展[J]. 测绘学报, 1999, 28(2): 95-102. CHEN Jun, ZHAO Renliang. Spatial Relations in GIS: A Survey on Its Key Issues and Research Progress[J]. Acta Geodaetica et Cartographica Sinica, 1999, 28(2): 95-102.
[3] SHAMOS M I, HOEY D. Geometric Intersection Problems[C]//17th Annual Symposium on Foundations of Computer Science, 1976. Houston, TX: IEEE, 1976: 208-215.
[4] BENTLEY J L, OTTMANN T A. Algorithms for Reporting and Counting Geometric Intersections[J]. IEEE Transactions on Computers, 1979, C-28(9): 643-647.
[5] BARTUSCHKA U, MEHLHORN K, NÄHER S. A Robust and Efficient Implementation of a Sweep Line Algorithm for the Straight Line Segment Intersection Problem[C]//Proceedings of Workshop on Algorithm Engineering. 1997.
[6] CHAZELLE B, EDELSBRUNNER H. An Optimal Algorithm for Intersecting Line Segments in the Plane[J]. Journal of the ACM, 1992, 39(1): 1-54.
[7] BALABAN I J. An Optimal Algorithm for Finding Segments Intersections[C]//Proceedings of the 11th Symposium on Computational Geometry. New York: ACM, 1995: 211-219.
[8] 陈军, 刘万增, 李志林, 等. 线目标间拓扑关系的细化计算方法[J]. 测绘学报, 2006, 35(3): 255-260. CHEN Jun, LIU Wanzeng, LI Zhilin, et al. The Refined Calculation Method of Topological Relationships between Line Objects[J]. Acta Geodaetica et Cartographica Sinica, 2006, 35(3): 255-260.
[9] 陈斐, 周晓光. 基于平面分割的线/线相接、交叉类型判断[J]. 测绘学报, 2014, 43(2): 186-192. CHEN Fei, ZHOU Xiaoguang. An Algorithm for Determining the Touching and Crossing Relations between a Pair of Lines Based on One Line Splitting Plane to Two Parts[J]. Acta Geodaetica et Cartographica Sinica, 2014, 43(2): 186-192.
[10] GOODRICH M T, GHOUSE M R, BRIGHT J. Sweep Methods for Parallel Computational Geometry[J]. Algorithmica, 1996, 15(2): 126-153.
[11] ATALLAH M J, GOODRICH M T. Efficient Plane Sweeping in Parallel[C]//Proceedings of the Second Annual Symposium on Computational Geometry. New York: ACM, 1986: 216-225.
[12] AGGARWAL A, CHAZELLE B, GUIBAS L, et al. Parallel Computational Geometry[J]. Algorithmica, 1988, 3(1-4): 293-327.
[13] OWENS J D, LUEBKE D, GOVINDARAJU N, et al. A Survey of General-Purpose Computation on Graphics Hardware[J]. Computer Graphics Forum, 2007, 26(1): 80-113.
[14] 张舒, 褚艳利. GPU高性能运算之CUDA[M]. 北京: 中国水利水电出版社, 2009. ZHANG Shu, CHU Yanli. CUDA GPU High-performance Computing[M]. Beijing: China Water Power Press, 2009.
[15] LEUTENEGGER S T, LOPEZ M A, EDGINGTON J. STR: A Simple and Efficient Algorithm for R-Tree Packing[C]//Proceedings of the 13th International Conference on Data Engineering. Birmingham: IEEE, 1997: 497-506.
[16] 周伟明. 多核计算与程序设计[M]. 武汉: 华中科技大学出版社, 2009. ZHOU Weiming. Multi-core Computing and Programming[M]. Wuhan: Huazhong University of Science and Technology Press, 2009.
[17] SAMET H, WEBBER R E. Storing a Collection of Polygons Using Quadtrees[J]. ACM Transactions on Graphics (TOG), 1985, 4(3): 182-222.
[18] SAMET H, WEBBER R E. On Encoding Boundaries with Quadtrees[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1984, 6(3): 365-369.
[19] SHEWCHUK J R. Adaptive Precision Floating-point Arithmetic and Fast Robust Geometric Predicates[J]. Discrete & Computational Geometry, 1997, 18(3): 305-363.
[20] MULLER J M, BRISEBARRE N, DE Dinechin F, et al. Handbook of Floating-point Arithmetic[M]. Boston: Birkhäuser, 2009.
[21] 王舒鹏, 方莉. 混合积判断线段相交的方法分析[J]. 电脑开发与应用, 2006, 19(10): 34-35. WANG Shupeng,FANG Li.An Analysis of Two Segments Intersection Judgment with Mixed Product[J]. Computer Development & Applications, 2006, 19(10): 34-35.
[22] EGENHOFER M J, HERRING J R. Categorizing Binary Topological Relations Between Regions, Lines and Points in Geographic Databases[R]. Orono: University of Maine 1991.
[23] 虞强源, 刘大有, 谢琦. 空间区域拓扑关系分析方法综述[J]. 软件学报, 2003, 14(4): 777-782. YU Qiangyuan, LIU Dayou, XIE Qi. A Survey of Analysis Methods of Topological Relations between Spatial Regions [J]. Journal of Software, 2003, 14(4): 777-782.
[24] HERRING J R. OpenGIS® Implementation Standard for Geographic Information——Simple Feature Access-Part 1: Common architecture[S]. [S.l.]: OGC Document, 2011.
[25] MCKENNEY M, PAULY A, PRAING R, et al. Local Topological Relationships for Complex Regions[M]//Advances in Spatial and Temporal Databases. Heidelberg: Springer, 2007: 203-220.