หาจุดกึ่งกลางของประเทศไทย

โดย สมภพ ศรลัมพ์

THmap=EntityValue
Thailand
COUNTRY
,"Polygon"[[1]]
In[]:=
GeoPosition
Number of points: 1600
Dimensions: {1,1600}

Out[]=
ListPlot[{#2,#1}&@@@(THmap[[1,1]])]
In[]:=
Out[]=
GeoListPlot[GeoPosition/@(THmap[[1,1]])]
In[]:=
Out[]=
r=DiscretizeGraphics[Polygon[{#2,#1}&@@@(THmap[[1,1]])]]
In[]:=
Out[]=
pnts=RandomPoint[r,1000];​​Show[{r,Graphics/@Point/@pnts}]
In[]:=
Out[]=
DistFunc=SignedRegionDistance[r]
In[]:=
RegionDistanceFunction
Embedding dimension: 2
Region dimension: 2

Out[]=
sols=Quiet@FindMinimum[DistFunc[{x,y}],{x,#[[1]]},{y,#[[2]]}]&/@pnts;
In[]:=
nsols={#1,{x,y}/.#2}&@@@sols;
In[]:=
ans=TakeSmallestBy[nsols,First,1]//First
In[]:=
{-2.0197,{101.362,15.4575}}
Out[]=
GeoListPlotGeoPosition[ans[[2]]//RotateRight],
Thailand
COUNTRY

In[]:=
Out[]=
GeoGraphics[GeoMarker@GeoPosition[ans[[2,{2,1}]]],​​GeoRangeQuantity[100,"Kilometers"]]
In[]:=
Out[]=