ÆäʵÎÒÒª²éµÄÎÊÌ⣬ÈçºÎÓÃjava½¨Á¢¿Õ¼ägrid indexµÄ·½·¨£¬½á¹ûÕÒµ½ÁËsqlseverµÄ£¬ºÃ°É£¬ÔÝʱÏÈÊÕÔÚÕâÀ
£½£½£½£½£½£½£½£½
SQL Server 2008 ÒýÈëÁ˶ԿռäÊý¾ÝºÍ¿Õ¼äË÷ÒýµÄÖ§³Ö¡£¡°¿Õ¼äË÷Òý¡±ÊÇÒ»ÖÖÀ©Õ¹Ë÷Òý£¬ÔÊÐíÄú¶Ô¿Õ¼äÁбàÖÆË÷Òý¡£¿Õ¼äÁÐÊǰüº¬¿Õ¼äÊý¾ÝÀàÐÍ£¨Èç geometry »ò geography£©Êý¾ÝµÄ±íÁС£±¾½ÚÖеÄÖ÷Ìâ½éÉÜÁ˿ռäË÷Òý¡£
SQL Server 2008 ¼°¸ü¸ß°æ±¾Ö§³Ö¿Õ¼äÊý¾Ý¡£Õâ°üÀ¨¶ÔÆ½Ãæ¿Õ¼äÊý¾ÝÀàÐÍ geometry µÄÖ§³Ö£¬¸ÃÊý¾ÝÀàÐÍÖ§³ÖÅ·¼¸ÀïµÃ×ø±êϵͳÖеļ¸ºÎÊý¾Ý£¨µã¡¢ÏߺͶà±ßÐΣ©¡£geography Êý¾ÝÀàÐͱíʾµØÇò±íÃæÄ³ÇøÓòÉϵĵØÀí¶ÔÏó£¬ÈçһƬ½µØ¡£geography ÁеĿռäË÷Òý»á½«µØÀíÊý¾ÝÓ³Éäµ½¶þά·ÇÅ·¼¸ÀïµÃ¿Õ¼ä¡£
¿Õ¼äË÷ÒýÊǶ԰üº¬¿Õ¼äÊý¾ÝµÄ±íÁУ¨¡°¿Õ¼äÁС±£©¶¨ÒåµÄ¡£Ã¿¸ö¿Õ¼äË÷ÒýÖ¸ÏòÒ»¸öÓÐÏ޿ռ䡣ÀýÈ磬geometry ÁеÄË÷ÒýÖ¸ÏòÆ½ÃæÉÏÓû§Ö¸¶¨µÄ¾ØÐÎÇøÓò¡£
ÔÚ SQL Server 2008 ÖУ¬¿Õ¼äË÷ÒýʹÓà B Ê÷¹¹½¨¶ø³É£¬Ò²¾ÍÊÇ˵£¬ÕâЩË÷Òý±ØÐë°´ B Ê÷µÄÏßÐÔ˳Ðò±íʾ¶þά¿Õ¼äÊý¾Ý¡£Òò´Ë£¬½«Êý¾Ý¶ÁÈë¿Õ¼äË÷Òý֮ǰ£¬SQL Server 2008 ÏÈʵÏÖ¶Ô¿Õ¼äµÄ·Ö²ã¾ùÔȷֽ⡣Ë÷Òý´´½¨¹ý³Ì»á½«¿Õ¼ä·Ö½â³ÉÒ»¸öËļ¶¡°Íø¸ñ²ã´Î½á¹¹¡±¡£ÕâЩ¼¶±ðÖ¸µÄÊÇ¡°µÚ 1 ¼¶¡±£¨¶¥¼¶£©¡¢¡°µÚ 2 ¼¶¡±¡¢¡°µÚ 3 ¼¶¡±ºÍ¡°µÚ 4 ¼¶¡±¡£
ÿ¸öºóÐø¼¶±ð¶¼»á½øÒ»²½·Ö½âÆäÉÏÒ»¼¶£¬Òò´ËÉÏÒ»¼¶±ðµÄÿ¸öµ¥Ôª¶¼°üº¬ÏÂÒ»¼¶±ðµÄÕû¸öÍø¸ñ¡£ÔÚ¸ø¶¨¼¶±ðÉÏ£¬ËùÓÐÍø¸ñÑØÁ½¸öÖá¶¼ÓÐÏàͬÊýÄ¿µÄµ¥Ôª£¨ÀýÈç 4x4 »ò 8x8£©£¬²¢ÇÒµ¥ÔªµÄ´óС¶¼Ïàͬ¡£
ÏÂͼÏÔʾÁËÍø¸ñ²ã´Î½á¹¹Ã¿¸ö¼¶±ðµÄÓÒÉϽǵ¥Ôª±»·Ö½â³É 4x4 Íø¸ñµÄÇé¿ö¡£ÊÂʵÉÏ£¬ËùÓе¥Ôª¶¼ÊÇÒÔÕâÖÖ·½Ê½·Ö½âµÄ¡£Òò´Ë£¬ÒÔ´ËΪÀý£¬½«Ò»¸ö¿Õ¼ä·Ö½â³ÉËĸö¼¶±ðµÄ 4x4 Íø¸ñʵ¼ÊÉÏ»á×ܹ²²úÉú 65,536 ¸öµÚËļ¶µ¥Ôª¡£
Õë¶Ô¿Õ¼äË÷Òý½øÐеĿռä·Ö½âÓëÓ¦ÓóÌÐòÊý¾ÝʹÓõĶÈÁ¿µ¥Î»Î޹ء£
Íø¸ñ²ã´Î½á¹¹µÄµ¥ÔªÊÇÀûÓöàÖÖ Hilbert ¿Õ¼äÌî³äÇúÏßÒÔÏßÐÔ·½Ê½±àºÅµÄ¡£È»¶ø£¬³öÓÚÑÝʾĿµÄ£¬ÕâÀïʹÓõÄÊǼòµ¥µÄ°´ÐбàºÅ£¬¶ø²»ÊÇÓÉ Hilbert ÇúÏßʵ¼Ê²úÉúµÄ±àºÅ¡£ÔÚÏÂͼÖУ¬¼¸¸ö±íʾ½¨ÖþÎïµÄ¶à±ßÐκͱíʾ½ÖµÀµÄÏßÒѾ·Å½øÁËÒ»¸ö 4x4 µÄ 1 ¼¶Íø¸ñÖС£µÚ 1 ¼¶µ¥ÔªµÄ±àºÅΪ 1 µ½ 16£¬±àºÅ´Ó×óÉϽǵĵ¥Ôª¿ªÊ¼¡£
ÑØÍø¸ñÖáµÄµ¥ÔªÊýĿȷ¶¨ÁËÍø¸ñµÄ¡°Ãܶȡ±£ºµ¥ÔªÊýĿԽ´ó£¬Íø¸ñµÄÃܶÈÔ½´ó¡£ÀýÈ磬8x8 Íø¸ñ£¨²úÉú 64 ¸öµ¥Ôª£©µÄÃܶȾʹóÓÚ 4x4 Íø¸ñ£¨²úÉú 16 ¸öµ¥Ôª£©µÄÃܶȡ£Íø¸ñÃܶÈÊÇÒÔÿ¸ö¼¶±ðΪ»ù´¡¶¨ÒåµÄ¡£
Íø¸ñÅäÖà µ¥ÔªÊýÄ¿
µÍ 4X4 16
ÖÐ 8X8 64
¸ß 16X16 256
ĬÈÏÉèÖÃËùÓм¶±ð¶¼Îª ÖС£
Äú¿ÉÒÔͨ¹ýÖ¸¶¨·ÇĬÈϵÄÍø¸ñÃܶȿØÖÆ·Ö½â¹ý³Ì¡£ÀýÈ磬ÔÚ²»Í¬¼¶±ðÖ¸¶¨²»Í¬Íø¸ñÃܶȶÔÓÚ»ùÓÚË÷Òý¿Õ¼äµÄ´óСºÍ¿Õ¼äÁÐÖеĶÔÏóÀ´ÓÅ»¯Ë÷Òý¿ÉÄܷdz£ÓÐÓá£
¿Õ¼äË÷ÒýµÄÍø¸ñÃܶÈÏÔʾÔÚ sys.spatial_index_tessellations Ŀ¼ÊÓͼµÄ level_1_grid¡¢level_2_grid¡¢level_3_grid ºÍ level_4_grid ÁÐÖС£
½«Ë÷Òý¿Õ¼ä·Ö½â³ÉÍø¸ñ²ã´Î½á¹¹ºó£¬¿Õ¼äË÷Òý½«ÖðÐжÁÈ¡¿Õ¼äÁÐÖеÄÊý¾Ý¡£¶ÁÈ¡¿Õ¼ä¶ÔÏ󣨻òʵÀý£©µÄÊý¾Ýºó£¬¿Õ¼äË÷Òý½«Îª¸Ã¶ÔÏóÖ´ÐС°·Ö¸î¹ý³Ì¡±¡£·Ö¸î¹ý³Ìͨ¹ý½«¶ÔÏóÓëÆä½Ó´¥µÄÍø¸ñµ¥Ôª¼¯£¨¡°½Ó´¥µ¥Ôª¡±£©Ïà¹ØÁªÊ¹¸Ã¶ÔÏóÊʺÏÍø¸ñ²ã´Î½á¹¹¡£´ÓÍø¸ñ²ã´Î½á¹¹µÄµÚ 1 ¼¶¿ªÊ¼£¬·Ö¸î¹ý³ÌÒÔ¡°¹ã¶ÈÓÅÏÈ¡±·½Ê½¶ÔÕû¸ö¼¶±ð½øÐд¦Àí¡£ÔÚ¿ÉÄܵÄÇé¿öÏ£¬´Ë¹ý³Ì¿ÉÒÔÁ¬Ðø´¦ÀíËùÓÐËĸö¼¶±ð£¬Ò»´Î´¦ÀíÒ»¸ö¼¶±ð¡£
·Ö¸ô¹æÔò
·Ö¸î¹ý³ÌµÄÊä³öΪ¶ÔÏóµÄ¿Õ¼äË÷ÒýÖÐËù¼Ç¼µÄ½Ó´¥µ¥Ôª¼¯¡£Í¨¹ýÒýÓÃÕâЩÒѼǼµ¥Ôª£¬¿Õ¼äË÷Òý¿ÉÒÔÈ·¶¨¸Ã¶ÔÏóÔÚ¿Õ¼äÖÐÏà¶ÔÓÚ¿Õ¼äÁÐÖÐÒ²´æ´¢ÔÚË÷ÒýÖÐµÄÆäËû¶ÔÏóµÄλÖá£
ΪÁËÏÞÖÆÎª¶ÔÏó¼Ç¼µÄ½Ó´¥µ¥ÔªÊý£¬·Ö¸î¹ý³Ì²ÉÓÃÁ˼¸¸ö·Ö¸î¹æÔò¡£ÕâЩ¹æÔòÈ·¶¨·Ö¸î¹ý³ÌµÄÉî¶ÈÒÔ¼°ÔÚË÷ÒýÖмǼÄÄЩ½Ó´¥µ¥Ôª¡£
ÕâЩ¹æÔòÈçÏ£º
- ¸²¸**æÔò
Èç¹ûÒ»¸ö¶ÔÏóÍêÈ«¸ÇסÁËij¸öµ¥Ôª£¬Ôò³Æ¸Ãµ¥ÔªÓɸöÔÏóËù¡°¸²¸Ç¡±¡£±»¸²¸ÇµÄµ¥Ôª»á²ÎÓë¼ÆÊý£¬µ«²»½øÐзָ´Ë¹æÔòÓ¦ÓÃÓÚÍø¸ñ²ã´Î½á¹¹µÄËùÓм¶±ð¡£¸²¸**æÔò¼ò»¯ÁË·Ö¸î¹ý³Ì£¬²¢¼õÉÙÁ˿ռäË÷Òý¼Ç¼µÄÊý¾ÝÁ¿¡£
- ÿ¶ÔÏóµ¥ÔªÊý¹æÔò
´Ë¹æÔòÇ¿ÖÆÖ´ÐС°Ã¿¶ÔÏóµ¥ÔªÊýÏÞÖÆ¡±£¬Õ⽫ȷ¶¨¿ÉÒÔΪÿ¸ö¶ÔÏó¼ÆÊýµÄ×î´óµ¥ÔªÊý£¨µÚ 1 ¼¶³ýÍ⣩¡£Ôڽϵͼ¶±ð£¬Ã¿¶ÔÏóµ¥ÔªÊý¹æÔò»á¿ØÖÆ¿ÉÒԼǼµÄÓйضÔÏóµÄÐÅÏ¢Á¿¡£
- ×îÉîµ¥Ôª¹æÔò
×îÉîµ¥Ôª¹æÔòͨ¹ýÖ»¼Ç¼ÒÑΪ¶ÔÏó·Ö¸îµÄ×îµ×²¿µ¥ÔªÀ´Éú³É¸Ã¶ÔÏóµÄ×î½üËÆ¶ÔÏ󡣸¸µ¥Ôª²»¼ÆÈëÿ¶ÔÏóµ¥ÔªÊý£¬ÕâЩµ¥Ôª²»¼Ç¼ÔÚË÷ÒýÖС£
ÕâЩ·Ö¸î¹æÔòÒÀ´ÎÖð²½Ó¦ÓÃÓÚÿ¸öÍø¸ñ¼¶±ð¡£´Ë²¿·ÖµÄÆäÓàÄÚÈݸüÏêϸµØ½éÉÜÁËÕâЩ·Ö¸î¹æÔò
¸²¸**æÔò
Èç¹ûÒ»¸ö¶ÔÏóÍêÈ«¸ÇסÁËij¸öµ¥Ôª£¬Ôò³Æ¸Ãµ¥ÔªÓɸöÔÏóËù¡°¸²¸Ç¡±¡£ÀýÈ磬ÔÚÏÂͼÖУ¬Ò»¸öµÚ 2 ¼¶µ¥Ôª 15.11 ÍêÈ«Óɰ˱ßÐεÄÖм䲿·ÖËù¸²¸Ç¡£

±»¸²¸ÇµÄµ¥Ôª»á²ÎÓë¼ÆÊý²¢¼Ç¼ÔÚË÷ÒýÖУ¬µ«²»ÔÙ½øÐзָ
ÿ¶ÔÏóµ¥ÔªÊý¹æÔò
ÿ¸ö¶ÔÏóµÄ·Ö¸î³Ì¶ÈÖ÷Ҫȡ¾öÓÚ¿Õ¼äË÷ÒýµÄ¡°Ã¿¶ÔÏóµ¥ÔªÊýÏÞÖÆ¡±¡£´ËÏÞÖÆÈ·¶¨Á˶ÔÓÚÿ¸ö¶ÔÏó·Ö¸î¿ÉÒÔ¼ÆÊýµÄ×î´óµ¥ÔªÊý¡£È»¶ø£¬Çë×¢Ò⣬ÿ¶ÔÏóµ¥ÔªÊý¹æÔò²»¶ÔµÚ 1 ¼¶Ç¿ÖÆÖ´ÐУ¬Òò´Ë¿ÉÄܳ¬³ö´ËÏÞÖÆ¡£Èç¹ûµÚ 1 ¼¶¼ÆÊý´ïµ½£¨»ò³¬³ö£©Ã¿¶ÔÏóµ¥ÔªÊýÏÞÖÆ£¬ÔòÔڽϵͼ¶±ð²»ÔÙ½øÐзָ
Ö»Òª¼ÆÊýµÍÓÚÿ¶ÔÏóµ¥ÔªÊýÏÞÖÆ£¬·Ö¸î¹ý³Ì¾Í½«¼ÌÐø¡£´Ó±àºÅ×îµÍµÄ½Ó´¥µ¥Ôª£¨ÀýÈçÉÏͼÖеĵ¥Ôª 15.6£©¿ªÊ¼£¬´Ë¹ý³Ì½«²âÊÔÿ¸öµ¥ÔªÒÔÆÀ¹ÀÊÇ¶ÔÆä½øÐмÆÊý»¹ÊǽøÐзָÈç¹û·Ö¸îijµ¥Ôª½«³¬³öÿ¶ÔÏóµ¥ÔªÊýÏÞÖÆ£¬½«¶Ô¸Ãµ¥Ôª½øÐмÆÊý¶ø²»½øÐзָ·ñÔò£¬½«¶Ô¸Ãµ¥Ôª½øÐзָ¶ø¶ÔÓɶÔÏó½Ó´¥µÄ½ÏµÍ¼¶±ðµÄµ¥Ôª½øÐмÆÊý¡£·Ö¸î¹ý³Ì½«ÒÔÕâÖÖ·½Ê½ÔÚÕû¸ö¼¶±ðµÄ¹ã¶È·¶Î§ÄÚ¼ÌÐø½øÐС£´Ë¹ý³Ì¶ÔµÍ¼¶±ðÍø¸ñµÄ·Ö¸îµ¥ÔªÒÀ´ÎÖð²½½øÐÐÖØ¸´£¬Ö±ÖÁ´ïµ½ÏÞÖÆ»ò²»ÔÙÓÐÒª¼ÆÊýµÄµ¥ÔªÎªÖ¹¡£
ÀýÈ磬ÉÏͼÏÔʾÁËÒ»¸öÍêÈ«ÊÊºÏµÚ 1 ¼¶Íø¸ñµÄµ¥Ôª 15 µÄ°Ë±ßÐΡ£ÔÚ´ËͼÖУ¬µ¥Ôª 15 ÒѽøÐзָ½«°Ë±ßÐηֳÉÁ˾Ÿö¶þ¼¶µ¥Ôª¡£´Ëͼ¼Ù¶¨Ã¿¶ÔÏóµ¥ÔªÊýÏÞÖÆÎª 9 »ò¸ü´ó¡£È»¶ø£¬Èç¹ûÿ¶ÔÏóµ¥ÔªÊýÏÞÖÆÎª 8 »ò¸üС£¬Ôòµ¥Ôª 15 ½«²»½øÐзָ¶øÖ»Îª¸Ã¶ÔÏó¶Ôµ¥Ôª 15 ½øÐмÆÊý¡£
ĬÈÏÇé¿öÏ£¬Ã¿¶ÔÏóµ¥ÔªÊýÏÞÖÆÎªÃ¿¸ö¶ÔÏó 16 ¸öµ¥Ôª£¬Õ⽫ÔÚ´ó¶àÊý¿Õ¼äË÷ÒýµÄ¿Õ¼äºÍ¾«¶ÈÖ®¼äÌṩһ¸öÁîÈËÂúÒâµÄÕÛÖз½°¸¡£È»¶ø£¬CREATE SPATIAL INDEX Transact-SQL Óï¾äÖ§³Ö CELLS_PER_OBJECT=n ×Ӿ䣬ʹÓøÃ×Ó¾ä¿ÉÒÔÖ¸¶¨½éÓÚ 1 ºÍ 8192£¨°üº¬ÕâÁ½Õߣ©Ö®¼äµÄÿ¶ÔÏóµ¥ÔªÊýÏÞÖÆ¡£
|
×¢Ò⣺
|
|
¿Õ¼äË÷ÒýµÄ cells_per_object ÉèÖÃÏÔʾÔÚ sys.spatial_index_tessellations Ŀ¼ÊÓͼÖС£ |
×îÉîµ¥Ôª¹æÔò
×îÉîµ¥Ôª¹æÔòÀûÓÃÿ¸ö½ÏµÍ¼¶±ðµ¥ÔªÊôÓÚÆäÉϼ¶µ¥ÔªÕâÒ»ÊÂʵ£ºµÚ 4 ¼¶µ¥ÔªÊôÓÚµÚ 3 ¼¶µ¥Ôª£¬µÚ 3 ¼¶µ¥ÔªÊôÓÚµÚ 2 ¼¶µ¥Ôª£¬µÚ 2 ¼¶µ¥ÔªÊôÓÚµÚ 1 ¼¶µ¥Ôª¡£ÀýÈ磬ÊôÓÚµ¥Ôª 1.1.1.1 µÄ¶ÔÏóÒ²ÊôÓÚµ¥Ôª 1.1.1¡¢µ¥Ôª 1.1 ÒÔ¼°µ¥Ôª 1¡£ÕâÖÖµ¥Ôª²ã´Î½á¹¹¹ØÏµÖªÊ¶ÒÑÄÚÖÃÓÚ²éѯ´¦ÀíÆ÷ÖС£Òò´Ë£¬Ö»ÓÐ×îÉî¼¶±ðµÄµ¥ÔªÐèÒª¼Ç¼ÔÚË÷ÒýÖУ¬´Ó¶ø×î´óÏ޶ȵؼõÉÙÁËË÷ÒýÐèÒª´æ´¢µÄÐÅÏ¢¡£
ÔÚÏÂͼÖУ¬Ïà¶Ô½ÏСµÄÁâÐζà±ßÐα»·Ö¸î¡£Ë÷ÒýʹÓÃĬÈϵÄÿ¶ÔÏóµ¥ÔªÊýÏÞÖÆ 16£¬´Ë¶ÔÏó½ÏС£¬Î´´ïµ½¸ÃÏÞÖÆ¡£Òò´Ë£¬·Ö¸îÒ»Ö±ÏÂÖÁµÚ 4 ¼¶¡£´Ë¶à±ßÐÎפÁôÔÚÒÔÏÂµÄµÚ 1 ¼¶µ½µÚ 3 ¼¶µÄµ¥ÔªÖУº4¡¢4.4 ÒÔ¼° 4.4.10 ºÍ 4.4.14¡£È»¶ø£¬Ê¹ÓÃ×îÉîµ¥Ôª¹æÔò£¬·Ö¸î½«½ö¶ÔÊ®¶þ¸öλÓÚµÚ 4 ¼¶µÄµ¥Ôª½øÐмÆÊý£º4.4.10.13-15 ÒÔ¼° 4.4.14.1-3¡¢4.4.14.5-7 ºÍ 4.4.14.9-11¡£

·Ö¸î·½°¸
¿Õ¼äË÷ÒýµÄÐÐΪ²¿·ÖÈ¡¾öÓÚ¡°·Ö¸î·½°¸¡±¡£·Ö¸î·½°¸Ìض¨ÓÚÊý¾ÝÀàÐÍ¡£ÔÚ SQL Server 2008 ÖУ¬¿Õ¼äË÷ÒýÖ§³ÖÁ½Öַָ°¸£º
¡¤ ¡°¼¸ºÎͼÐÎÍø¸ñ·Ö¸î¡±£¬ÕâÊÇÊÊÓÃÓÚ geometry Êý¾ÝÀàÐ͵ķ½°¸¡£
¡¤ µØÀíÍø¸ñ·Ö¸î·½°¸£¬¸Ã·½°¸ÊÊÓÃÓÚÊý¾ÝÀàÐÍΪ geography µÄÁС£
|
×¢Ò⣺
|
|
¿Õ¼äË÷ÒýµÄ tessellation_scheme ÉèÖÃÏÔʾÔÚ sys.spatial_index_tessellations Ŀ¼ÊÓͼÖС£ |
¼¸ºÎͼÐÎÍø¸ñ·Ö¸î·½°¸
¼¸ºÎͼÐÎÍø¸ñ·Ö¸îÊÇÊÊÓÃÓÚ geometry Êý¾ÝÀàÐ͵ÄĬÈϷָ°¸¡£ÔÚ SQL Server 2008 ÖУ¬ËüÊÇΨһµÄ´ËÀà·Ö¸î·½°¸¡£±¾²¿·ÖÌÖÂÛÁËÓëʹÓÿռäË÷ÒýÓйصļ¸ºÎͼÐÎÍø¸ñ·Ö¸îµÄ¼¸¸ö·½Ã棺֧³ÖµÄ·½·¨ºÍ±ß½ç¿ò¡£
|
×¢Ò⣺
|
|
Äú¿ÉÒÔʹÓà CREATE SPATIAL INDEX Transact-SQL Óï¾äµÄ USING GEOMETRY_GRID ×Ó¾äÏÔʽָ¶¨´Ë·Ö¸î·½°¸¡£ |
Ö§³ÖµÄ¼¸ºÎͼÐη½·¨
¿Õ¼äË÷ÒýÖ¼ÔÚͨ¹ý³äµ±¶ÔÏóɸѡÆ÷À´¼õÉÙ½«ÃæÏò¼¯ºÏµÄ·½·¨Ó¦ÓÃÓÚ¿Õ¼äÁеĿªÏú¡£geometry Êý¾ÝÀàÐÍÌṩÁËһЩÄÚÖõķ½·¨£¬ÒÔ¹¹ÔìÓÃÓÚÃèÊö¼¸ºÎ¶ÔÏóµÄ geometry ʵÀý²¢Ê¹ÓÃÕâЩʵÀý¡£ÔÚijЩÌõ¼þÏ£¬¿Õ¼äË÷ÒýÖ§³Ö¶àÖÖÃæÏò¼¯ºÏµÄ¼¸ºÎͼÐη½·¨£¬Èç STIntersects() ºÍ STTouches()¡£
ÓйØÓɿռäË÷ÒýÌṩµÄ¼¸ºÎͼÐη½·¨Ö§³ÖµÄÏêϸÐÅÏ¢£¬Çë²ÎÔĿռäË÷ÒýÖ§³ÖµÄ¼¸ºÎͼÐη½·¨¡£
±ß½ç¿ò
¼¸ºÎÊý¾ÝÕ¼ÓÐµÄÆ½Ãæ¿ÉÒÔÊÇÎÞÏ޵ġ£È»¶ø£¬ÔÚ SQL Server 2008 ÖУ¬¿Õ¼äË÷ÒýÐèÒªÓÐÏ޿ռ䡣ΪÁ˽¨Á¢ÓÐÏÞ¿Õ¼äÒÔÓÃÓڷֽ⣬¼¸ºÎͼÐÎÍø¸ñ·Ö¸î·½°¸ÐèÒª¾ØÐΡ°±ß½ç¿ò¡±¡£¸Ã±ß½ç¿òÓÉËĸö×ø±ê (x-min,y-min) ºÍ (x-max,y-max) ¶¨Ò壬ÕâÐ©×ø±ê´æ´¢Îª¿Õ¼äË÷ÒýµÄÊôÐÔ¡£ÕâÐ©×ø±êËù±íʾµÄÒâÒåÈçÏ£º
¡¤ x-min ÊDZ߽ç¿ò×óÏÂ½ÇµÄ x ×ø±ê¡£
¡¤ y-min ÊÇ×óÏÂ½ÇµÄ y ×ø±ê¡£
¡¤ x-max ÊÇÓÒÉÏ½ÇµÄ x ×ø±ê¡£
¡¤ y-max ÊÇÓÒÉÏ½ÇµÄ y ×ø±ê¡£
|
×¢Ò⣺
|
|
ÕâÐ©×ø±êͨ¹ý CREATE SPATIAL INDEX Transact-SQL Óï¾äµÄ BOUNDING_BOX ×Ó¾äÖ¸¶¨¡£ |
(x-min,y-min) ºÍ (x-max,y-max) ×ø±êÈ·¶¨±ß½ç¿òµÄλÖúͳߴ硣±ß½ç¿òµÄÍⲿ¿Õ¼äÊÓ×÷Ò»¸ö±àºÅΪ 0 µÄµ¥Ôª¡£
¿Õ¼äË÷Òý½«·Ö½â±ß½ç¿òµÄÄÚ²¿¿Õ¼ä¡£Íø¸ñ²ã´Î½á¹¹µÄµÚ 1 ¼¶Íø¸ñ½«Ìî³ä±ß½ç¿ò¡£ÈôÒªÔÚÍø¸ñ²ã´Î½á¹¹ÖзÅÖü¸ºÎ¶ÔÏ󣬿ռäË÷Òý»á½«¸Ã¶ÔÏóµÄ×ø±êÓë±ß½ç¿òµÄ×ø±ê½øÐбȽϡ£
ÏÂͼÏÔʾÁËÓɱ߽ç¿òµÄ (x-min,y-min) ºÍ (x-max,y-max) ×ø±ê¶¨ÒåµÄµã¡£Íø¸ñ²ã´Î½á¹¹µÄ¶¥¼¶ÏÔʾΪ 4x4 Íø¸ñ¡£³öÓÚÑÝʾµÄÄ¿µÄ£¬ÕâÀïÊ¡ÂÔÁ˽ϵͼ¶±ð¡£±ß½ç¿òµÄÍⲿ¿Õ¼äÓÃÁã (0) ָʾ¡£Çë×¢Ò⣬¶ÔÏó¡°A¡±²¿·Ö³¬³öÁ˱߽ç¿ò£¬¶ÔÏó¡°B¡±ÍêȫλÓڱ߽ç¿òÍⲿ£¬¼´µ¥Ôª 0 ÖС£

±ß½ç¿òÓëÓ¦ÓóÌÐò¿Õ¼äÊý¾ÝµÄijЩ²¿·ÖÏà¶ÔÓ¦¡£Ë÷ÒýµÄ±ß½ç¿òÊÇÍêÈ«°üº¬´æ´¢ÔÚ¿Õ¼äÁÐÖеÄÊý¾Ý»¹ÊÇÖ»°üº¬ÆäÖв¿·ÖÊý¾ÝÈ¡¾öÓÚÓ¦ÓóÌÐò¡£Ö»ÓÐÕë¶ÔÍêȫλÓڱ߽ç¿òÄÚ²¿µÄ¶ÔÏóµÄ¼ÆËã²Ù×÷²Å»áÊÜÒæÓÚ¿Õ¼äË÷Òý¡£Òò´Ë£¬ÈôÒª»ñµÃ geometry ÁеĿռäË÷ÒýËùÄÜÌṩµÄ×î´óÓÅÊÆ£¬ÄúÐèÒªÖ¸¶¨Ò»¸ö°üº¬ËùÓлò´ó¶àÊý¶ÔÏóµÄ±ß½ç¿ò¡£
|
×¢Ò⣺
|
|
¿Õ¼äË÷ÒýµÄÍø¸ñÃܶÈÏÔʾÔÚ sys.spatial_index_tessellations Ŀ¼ÊÓͼµÄ bounding_box_xmin¡¢bounding_box_ymin¡¢bounding_box_xmax ºÍ bounding_box_ymax ÁÐÖС£ |
µØÀíÍø¸ñ·Ö¸î·½°¸
´Ë·Ö¸î·½°¸½öÊÊÓÃÓÚ geography ÁС£´Ë²¿·Ö×ܽáÁ˵ØÀíÍø¸ñ·Ö¸îÖ§³ÖµÄ·½·¨£¬²¢ÌÖÂÛÁËÈçºÎ½«²âÁ¿¿Õ¼äͶӰµ½Æ½ÃæÉÏ£¬¸ÃÆ½ÃæËæºó½«·Ö½â³ÉÍø¸ñ²ã´Î½á¹¹¡£
|
×¢Ò⣺
|
|
Äú¿ÉÒÔʹÓà CREATE SPATIAL INDEX Transact-SQL Óï¾äµÄ USING GEOGRAPHY_GRID ×Ó¾äÏÔʽָ¶¨´Ë·Ö¸î·½°¸¡£ |
Ö§³ÖµÄµØÀí·½·¨
geography Êý¾ÝÀàÐÍÌṩÁËһЩÄÚÖõķ½·¨£¬ÓÃÀ´¹¹ÔìºÍ²Ù×÷ÃèÊöµØÀí¶ÔÏóµÄ geography¡°ÊµÀý¡±¡£ÔÚijЩÌõ¼þÏ£¬¿Õ¼äË÷ÒýÖ§³ÖÒÔÏÂÃæÏò¼¯ºÏµÄµØÀí·½·¨£ºSTIntersects()¡¢ STEquals() ºÍ STDistance()¡£geography Êý¾ÝÀàÐÍÁÐÉϵĿռäË÷Òý»áɸѡ¶ÔÏ󣬲¢½µµÍ½«ÕâЩ·½·¨Ó¦ÓÃÓÚ¿Õ¼äÊý¾ÝµÄÐÔÄܺͲéѯ¿ªÏú¡£
ÓйØÓɿռäË÷ÒýÌṩµÄµØÀí·½·¨Ö§³ÖµÄÏêϸÐÅÏ¢£¬Çë²ÎÔĿռäË÷ÒýÖ§³ÖµÄµØÓò·½·¨¡£
½«²âÁ¿¿Õ¼äͶӰµ½Æ½ÃæÉÏ
¶Ô geography ʵÀý£¨¶ÔÏ󣩵ļÆË㽫°üº¬¶ÔÏóµÄ¿Õ¼äÊÓ×÷²âÁ¿ÍÖÔ²Ìå¡£ÈôÒª·Ö½â´Ë¿Õ¼ä£¬µØÀíÍø¸ñ·Ö¸î·½°¸½«ÍÖÔ²Ìå±íÃæ·ÖΪÉϰëÇòºÍϰëÇò£¬È»ºóÖ´ÐÐÏÂÁв½Ö裺
1. ½«Ã¿¸ö°ëÇòͶӰÔÚËıßÐÎÀâ×¶Í¼ÃæÉÏ¡£
2. ½«Á½¸öÀâ׶ͼƽչ¿ª¡£
3. Áª½ÓƽչµÄÀâ׶ͼÒÔÐγɷÇÅ·¼¸ÀïµÃÆ½Ãæ¡£
ÏÂͼÏÔʾÁË´ËÈý²½·Ö½â¹ý³ÌµÄʾÒâͼ¡£ÔÚÀâ׶ͼÖУ¬ÐéÏß±íʾÿ¸öÀâ׶ͼµÄËĸöÃæµÄ±ß½ç¡£²½Öè 1 ºÍ 2 ÏÔʾ²âÁ¿ÍÖÔ²Ì壬ʹÓÃÒ»ÌõÂÌɫˮƽÏß±íʾ³àµÀ¾Ïߣ¬Ê¹ÓÃһϵÁÐÂÌÉ«´¹Ö±Ïß±íʾÈô¸ÉÌõγÏß¡£²½Öè 1 ÏÔʾҪͶӰÔÚÁ½¸ö°ëÇòÉϵÄÀâ׶ͼ¡£²½Öè 2 ÏÔʾҪƽչµÄÀâ׶ͼ¡£²½Öè 3 ÏÔʾƽչµÄÀâ׶ͼ£¬ÕâЩÀâ׶ͼÒÑ×éºÏÆðÀ´ÐγÉÒ»¸öÆ½Ãæ£¬ÏÔʾ³öÐí¶àͶӰµÄ¾Ïß¡£Çë×¢Ò⣬ÕâЩͶӰÏßÉìÖ±ºó³¤¶È²»Ò»£¬¾ßÌåÈ¡¾öÓÚËüÃÇÂäÔÚÀâ׶ͼÉϵÄλÖá£

¿Õ¼äͶӰµ½Æ½ÃæÉÏÖ®ºó£¬´ËÆ½Ãæ½«»á·Ö½â³ÉËļ¶Íø¸ñ²ã´Î½á¹¹¡£²»Í¬¼¶±ð¿ÉÒÔʹÓò»Í¬µÄÍø¸ñÃܶȡ£ÏÂͼÏÔʾÁËÒÑ·Ö½â³ÉÒ»¸ö 4x4 µÄ 1 ¼¶Íø¸ñºóµÄÆ½Ãæ¡£³öÓÚÑÝʾĿµÄ£¬ÕâÀïÊ¡ÂÔÁËÍø¸ñ²ã´Î½á¹¹µÄ½ÏµÍ¼¶±ð¡£ÊÂʵÉÏ£¬´ËÆ½ÃæÍêÈ«·Ö½â³ÉÁËÒ»¸öËļ¶Íø¸ñ²ã´Î½á¹¹¡£·Ö½â¹ý³ÌÍê³Éºó£¬½«ÖðÐÐ´Ó geography ÁжÁÈ¡µØÀíÊý¾Ý£¬²¢ÎªÃ¿¸ö¶ÔÏóÒÀ´ÎÖ´Ðзָî¹ý³Ì¡£

¿Õ¼äË÷ÒýÖ§³Ö
¿ÉÒÔ½ö¶Ô¿Õ¼äÁд´½¨¿Õ¼äË÷Òý¡£¿ÉÒÔ¶ÔÖ§³Ö¿Õ¼äË÷ÒýµÄ±íµÄÈκοռäÁд´½¨¿Õ¼äË÷Òý£¬²¢¿ÉÒÔ¶Ô¸ø¶¨µÄ¿Õ¼äÁд´½¨¶à¸ö¿Õ¼äË÷Òý¡£ÓйضԿռäË÷ÒýµÄÏÞÖÆµÄÏêϸÐÅÏ¢£¬Çë²ÎÔĶԿռäË÷ÒýµÄÏÞÖÆ¡£
½¨Á¢Ò»¸ö¿Õ¼äË÷Òý
ÓÒ¼üµ¥»÷¡°Ë÷Òý¡±£¬ÔÙÑ¡Ôñ¡°Ð½¨Ë÷Òý¡±¡£

ÔÚ¡°Ë÷ÒýÃû³Æ¡±×Ö¶ÎÖУ¬ÊäÈëË÷ÒýµÄÃû³Æ¡£
ÔÚ¡°Ë÷ÒýÀàÐÍ¡±ÏÂÀÁбíÖУ¬Ñ¡Ôñ¡°¿Õ¼ä¡±¡£

µã»÷¡°Ìí¼Ó¡±°´Å¥£¬Ñ¡Ôñ¿Õ¼ä×Ö¶Î
µ±¶Ô geometry ÀàÐÍÁд´½¨Ë÷Òýʱ£¬±ØÐëÖ¸¶¨±ß½ç¿òµÄ (X-min,Y-min) ºÍ (X-max,Y-max) ×ø±ê¡£¶ÔÓÚ geography ÀàÐÍÁеÄË÷Òý£¬µ±ÄúÖ¸¶¨¡°µØÀíÍø¸ñ¡±·Ö¸î·½°¸ºó£¬±ß½ç¿ò×ֶαäΪֻ¶Á״̬£¬ÒòΪµØÀíÍø¸ñ·Ö¸î²»Ê¹Óñ߽ç¿ò¡£
Äú»¹¿ÉÒÔÖ¸¶¨ÈÎÒâ¼¶±ðµÄ·Ö¸î·½°¸µÄ¡°Ã¿¸ö¶ÔÏóµÄµ¥Ôª¸ñÊý¡±×ֶκÍÍø¸ñÃܶȵķÇĬÈÏÖµ¡£Ã¿¸ö¶ÔÏóµÄµ¥Ôª¸ñÊýµÄĬÈÏÊý×ÖΪ 16£¬Ä¬ÈϵÄÍø¸ñÃܶÈΪ¡°ÖС±¡£
¡°±ß½ç¿ò¡±Îª¼¸ºÎÆ½ÃæµÄ¶¥¼¶Íø¸ñµÄÖܽ硣±ß½ç¿ò²ÎÊý½ö´æÔÚÓÚ¼¸ºÎͼÐÎÍø¸ñ·Ö¸îÖС£Èç¹û¡°·Ö¸î·½°¸¡±Îª¡°µØÀíÍø¸ñ¡±£¬ÕâЩ²ÎÊý³Ê»ÒÉ«¡£
Ãæ°å½«ÏÔʾ±ß½ç¿òµÄ£¨X-min¡¢Y-min£©ºÍ£¨X-max¡¢Y-max£©×ø±ê¡£Ã»ÓÐÈκÎĬÈÏ×ø±êÖµ¡£Òò´Ë£¬ÔÚ¶Ô geometry ÀàÐÍÁд´½¨ÐµĿռäË÷Òýʱ£¬±ØÐëÖ¸¶¨×ø±êÖµ¡£
- X ×îСֵ
-
±ß½ç¿ò×óÏÂ½ÇµÄ X ×ø±ê¡£
- Y ×îСֵ
-
±ß½ç¿ò×óÏÂ½ÇµÄ Y ×ø±ê¡£
- X ×î´óÖµ
-
±ß½ç¿òÓÒÉÏ½ÇµÄ X ×ø±ê¡£
- Y ×î´óÖµ
-
±ß½ç¿òÓÒÉÏ½ÇµÄ Y ×ø±ê¡£
-
¡°·Ö¸î·½°¸¡±
ָʾË÷ÒýµÄ·Ö¸î·½°¸¡£Ö§³ÖµÄ·Ö¸î·½°¸°üÀ¨£º
- ¡°¼¸ºÎͼÐÎÍø¸ñ¡±
-
Ö¸¶¨¡°¼¸ºÎͼÐÎÍø¸ñ¡±·Ö¸î·½°¸£¬ËüÊÊÓÃÓÚ geometry Êý¾ÝÀàÐ͵ÄÁС£
- ¡°µØÀíÍø¸ñ¡±
-
Ö¸¶¨¡°µØÀíÍø¸ñ¡±·Ö¸î·½°¸£¬ËüÊÊÓÃÓÚ geography Êý¾ÝÀàÐ͵ÄÁС£
ÿ¸ö¶ÔÏóµÄµ¥Ôª¸ñÊý
ָʾ¿ÉÓÃÓÚË÷ÒýÖе¥¸ö¿Õ¼ä¶ÔÏóµÄÿ¸ö¶ÔÏóµÄ·Ö¸îµ¥Ôª¸ñÊý¡£¸ÃÊý×Ö¿ÉÒÔÊÇ 1 ºÍ 8192 Ö®¼ä£¨º¬ 1 ºÍ 8192£©µÄÈκÎÕûÊý¡£Ä¬ÈÏֵΪ 16¡£
ÔÚ¶¥²ã£¬Èç¹û¶ÔÏó°üº¬µÄµ¥Ôª¸ñ¶àÓÚ n Ö¸¶¨µÄµ¥Ôª¸ñ£¬ÔòË÷Òý²Ù×÷½«¸ù¾ÝÐèҪʹÓþ¡¿ÉÄܶàµÄµ¥Ôª¸ñÀ´ÌṩÍêÕûµÄ¶¥¼¶·Ö¸î¡£ÔÚÕâÖÖÇé¿öÏ£¬¶ÔÏóÊÕµ½µÄµ¥Ôª¸ñÊý¿ÉÄÜ»á´óÓÚÖ¸¶¨µÄµ¥Ôª¸ñÊý¡£ÕâÖÖÇé¿öÏ£¬×î´óÊýÁ¿¼´Îª¶¥¼¶Íø¸ñ´´½¨µÄµ¥Ôª¸ñÊý£¬ÕâÈ¡¾öÓÚ¡°¼¶±ð 1¡±µÄÃܶȡ£
Íø¸ñ
´ËÃæ°åÏÔʾ·Ö¸î·½°¸µÄÿ¸ö¼¶±ðÉÏÍø¸ñµÄÃܶȡ£ÃܶȿÉÖ¸¶¨Îª¡°µÍ¡±¡¢¡°ÖС±»ò¡°¸ß¡±Èý¸ö¼¶±ð¡£Ä¬ÈÏֵΪ¡°ÖС±¡£¡°µÍ¡±±íʾ 4x4 Íø¸ñ£¨16 ¸öµ¥Ôª¸ñ£©¡¢¡°ÖС±±íʾ 8x8 Íø¸ñ£¨64 ¸öµ¥Ôª¸ñ£©¶ø¡°¸ß¡±±íʾ 16x16 Íø¸ñ£¨256 ¸öµ¥Ôª¸ñ£©¡£
- ¼¶±ð 1
-
µÚÒ»¼¶£¨¶¥¼¶£©Íø¸ñµÄÃܶȡ£
- ¼¶±ð 2
-
µÚ¶þ¼¶Íø¸ñµÄÃܶȡ£
- ¼¶±ð 3
-
µÚÈý¼¶Íø¸ñµÄÃܶȡ£
- ¼¶±ð 4
-
µÚËļ¶Íø¸ñµÄÃܶȡ£
½á¹ûÈçÏÂͼ£º

http://www.cnblogs.com/TerryFeng/archive/2009/05/27/1490803.html