繪圖管理器自動貼合功能
繪圖管理器自動貼合功能
在使用繪圖管理器繪製圖徵時,很難將原本應該坐落於同一個位置的點位或是邊線完全或貼合,這時必需開啟繪圖管理器的自動貼合功能,並設定可容許之貼合範圍,滑鼠游標將自動偵測,在這個範圍內如果已經有圖徵的結點、邊線存在,將會自動貼合過去。在繪圖管理器物件中,自動貼合功能相關設定之屬性在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自動貼合容許範圍
}