जैसा कि ऐसा लगता है कि आप MapInfo का उपयोग कर रहे हैं, यहाँ एक MapBasic फ़ंक्शन है जिसे मैंने कुछ समय पहले एक इन-हाउस टूल के लिए लिखा था, जिस पर मैं काम कर रहा था। यह एक स्रोत नोड (आपका केंद्र बिंदु) और एक क्षेत्र ऑब्जेक्ट (बहुभुज) को तर्क के रूप में लेता है और स्रोत बिंदु से बहुभुज में सबसे दूर नोड पर एक बिंदु वस्तु देता है।
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