หาจุดกึ่งกลางของประเทศไทย
หาจุดกึ่งกลางของประเทศไทย
โดย สมภพ ศรลัมพ์
โดย สมภพ ศรลัมพ์
In[]:=
THmap=EntityValue,"Polygon"[[1]]
Out[]=
GeoPosition
In[]:=
ListPlot[{#2,#1}&@@@(THmap[[1,1]])]
Out[]=
In[]:=
GeoListPlot[GeoPosition/@(THmap[[1,1]])]
Out[]=
In[]:=
r=DiscretizeGraphics[Polygon[{#2,#1}&@@@(THmap[[1,1]])]]
Out[]=
In[]:=
pnts=RandomPoint[r,1000];Show[{r,Graphics/@Point/@pnts}]
Out[]=
In[]:=
DistFunc=SignedRegionDistance[r]
Out[]=
RegionDistanceFunction
In[]:=
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
Out[]=
{-2.0197,{101.362,15.4575}}
In[]:=
GeoListPlotGeoPosition[ans[[2]]//RotateRight],
Out[]=
In[]:=
GeoGraphics[GeoMarker@GeoPosition[ans[[2,{2,1}]]],GeoRangeQuantity[100,"Kilometers"]]
Out[]=