Karena sepertinya Anda menggunakan MapInfo, berikut adalah fungsi MapBasic yang saya tulis beberapa waktu lalu untuk alat internal yang sedang saya kerjakan. Dibutuhkan node sumber (titik centroid Anda) dan objek wilayah (poligon) sebagai argumen dan mengembalikan objek titik pada simpul terjauh dalam poligon dari titik sumber.
Function GetFurthest(ByVal oNode1 as Object, ByVal oObj as Object) as Object
Dim sourceE,sourceN,East,North,Longest,Dist as Float,
nNodes,nPolys,i,j as SmallInt,
oNode2 as Object
sourceE = CentroidX(oNode1)
sourceN = CentroidY(oNode1)
Longest = 0
nPolys = ObjectInfo(oObj,OBJ_INFO_NPOLYGONS)
For i = 1 to nPolys
nNodes = ObjectInfo(oObj,OBJ_INFO_NPOLYGONS+nPolys)
For j = 1 to nNodes
East = ObjectNodeX(oObj,i,j)
North = ObjectNodeY(oObj,i,j)
Dist = Distance(sourceE,sourceN,East,North,"m")
If Dist > Longest then
Longest = Dist
oNode2 = CreatePoint(East,North)
End if
Next
Next
GetFurthest = oNode2
End Function