繪圖管理器自動貼合功能

繪圖管理器自動貼合功能

在使用繪圖管理器繪製圖徵時,很難將原本應該坐落於同一個位置的點位或是邊線完全或貼合,這時必需開啟繪圖管理器的自動貼合功能,並設定可容許之貼合範圍,滑鼠游標將自動偵測,在這個範圍內如果已經有圖徵的結點、邊線存在,將會自動貼合過去。在繪圖管理器物件中,自動貼合功能相關設定之屬性在snapOptions中,利用setSnapOptions()方法變更屬性內容,包含開啟貼合功能、容許範圍。貼合的模式共有三種,snapPoint可以貼合到圓形圖徵的圓心或點圖徵,snapEdge可以貼合到線面(含矩形、圓形)圖徵的邊界(或圓周)上,snapVertex則可以貼合到線面圖徵的所有結點。

pDrawingManager.setSnapOptions(

            {

                snapping: true, // 啟用/關閉 snap

                tolerance: parseFloat(document.getElementById("tolerance").value),  // 容許值 (pixel)

                snapPoint: true, // 貼近點資料或圓心上 (套用標記, )

                snapEdge: true, // 貼近線段邊上或圓周上 (套用矩形, , 多邊形, )

                snapVertex: true // 貼近所有結點 (套用矩形, , 多邊形)

            }

        );

 

貼合功能可以透過setSnapping()方法開啟關閉,三種貼合模式也可以各自開關,容許值也可以藉由setTolerance()方法變更。

function setSnapping()

   {

           if(pDrawingManager.getSnapping())  //取得是否有開啟snapping

           {

                   pDrawingManager.setSnapping(false);  //設定關閉snapping

           }

           else

           {

                   pDrawingManager.setSnapping(true);  //設定開啟snapping

           }

   }

  

   function setSnapPoint()

   {      

           pDrawingManager.setSnapToPoint(false);  //關閉貼近點資料或圓心

   }

  

   function setSnapEdge()

   {

           pDrawingManager.setSnapToEdge(false);  //關閉貼近線段邊上或圓周上

   }

  

   function setSnapVertex()

   {

           pDrawingManager.setSnapToVertex(false);  //關閉貼近所有結點

   }

  

   function setTolerance()

   {

   pDrawingManager.setSnapTolerance(parseFloat(document.getElementById("tolerance").value));  //設定snapping自動貼合容許範圍

        }

回到上方