Use Wikipedia API for coordinates

This commit is contained in:
Antonio J. Delgado 2023-04-20 09:30:48 +03:00
parent 18741def49
commit f9449ac9af

View file

@ -134,57 +134,34 @@ fi
str_city=$(echo "$city" | sed "s/ /_/g" -)
message "str_city $str_city"
wiki_url="https://en.wikipedia.org/wiki/$str_city"
python3_cmd=$(which python3)
if [ "${python3_cmd}" == "" ]; then
echo "Python3 not found"
exit 3
fi
escaped_city=$("${python3_cmd}" -c 'import urllib.parse; import sys; print(urllib.parse.quote(sys.argv[1]))' "${str_city}")
wiki_url="https://en.wikipedia.org/w/api.php?action=query&prop=coordinates&format=json&titles=${escaped_city}"
message "wiki_url $wiki_url"
wiki_content=$("${curl_cmd}" -s $wiki_url)
latitude=$(echo $wiki_content | egrep -o "[0-9]{1,2}°[0-9]?[0-9]??[0-9]?[0-9]?″?[NS]" | head -n 1)
message "latitude $latitude"
longitude=$(echo $wiki_content | egrep -o "[0-9]{1,2}°[0-9]?[0-9]??[0-9]?[0-9]?″?[EW]" | head -n 1)
message "longitude $longitude"
g_latitude=$(echo $latitude | egrep -o "[0-9]{1,2}°" | sed "s/°//g" - )
message "g_latitude $g_latitude"
m_latitude=$(echo $latitude | egrep -o "[0-9]{1,2}" | sed "s///g" - )
message "m_latitude $m_latitude"
[[ "$m_latitude" == "" ]] && m_latitude=0
s_latitude=$(echo $latitude | egrep -o "[0-9]{1,2}″" | sed "s/″//g" - )
message "s_latitude $s_latitude"
[[ "$s_latitude" == "" ]] && s_latitude=0
o_latitude=$(echo $latitude | egrep -o "[NS]")
if [[ "$o_latitude" == "S" ]]; then
o_latitude=South
latitude=$(echo "${wiki_content}" | jq '.query.pages[].coordinates[0].lat')
if (( $(echo "${latitude} > 0" | bc -l) )); then
o_latitude=North
else
o_latitude=North
o_latitude=South
fi
message "o_latitude $o_latitude"
gm_latitude=$(echo "scale=2; $m_latitude / 60" | bc)
message "gm_latitude $gm_latitude"
gs_latitude=$(echo "scale=2; $m_latitude / 3600" | bc)
message "gs_latitude $gs_latitude"
g_latitude=$(echo "scale=2; $g_latitude + $gm_latitude + $gs_latitude" | bc)
message "g_latitude $g_latitude"
g_longitude=$(echo $longitude | egrep -o "[0-9]{1,2}°" | sed "s/°//g" - )
message "g_longitude $g_longitude"
m_longitude=$(echo $longitude | egrep -o "[0-9]{1,2}" | sed "s///g" - )
[[ "$m_longitude" == "" ]] && m_longitude=0
message "m_longitude $m_longitude"
s_longitude=$(echo $longitude | egrep -o "[0-9]{1,2}″" | sed "s/″//g" - )
[[ "$s_longitude" == "" ]] && s_longitude=0
message "s_longitude $s_longitude"
o_longitude=$(echo $longitude | egrep -o "[EW]")
if [[ "$o_longitude" == "E" ]]; then
o_longitude=East
latitude="${latitude//-/}"
message "Latitude '${latitude} ${o_latitude}'"
longitude=$(echo "${wiki_content}" | jq '.query.pages[].coordinates[0].lon')
if (( $(echo "${longitude} > 0" | bc -l) )); then
o_longitude=East
else
o_longitude=West
o_longitude=West
fi
message "o_longitude $o_longitude"
gm_longitude=$(echo "scale=2; $m_longitude / 60" | bc)
message "gm_longitude $gm_longitude"
gs_longitude=$(echo "scale=2; $m_longitude / 3600" | bc)
message "gs_longitude $gs_longitude"
g_longitude=$(echo "scale=2; $g_longitude + $gm_longitude + $gs_longitude" | bc)
message "g_longitude $g_longitude"
#url='https://www.fourmilab.ch/cgi-bin/Earth?img=learth.evif&imgsize=1366&dynimg=y&opt=-l&lat=41&ns=North&lon=0&ew=East&alt=35785&tle=&date=0&utc=&jd='
longitude="${longitude//-/}"
message "Longitude '${longitude} ${o_longitude}'"
url="https://www.fourmilab.ch/cgi-bin/Earth?img=learth.evif&imgsize=$screen_width&dynimg=y&opt=-l&lat=$g_latitude&ns=$o_latitude&lon=$g_longitude&ew=$o_longitude&alt=35785&tle=&date=0&utc=&jd="
#url='https://www.fourmilab.ch/cgi-bin/Earth?img=learth.evif&imgsize=1366&dynimg=y&opt=-l&lat=41&ns=North&lon=0&ew=East&alt=35785&tle=&date=0&utc=&jd='
url="https://www.fourmilab.ch/cgi-bin/Earth?img=learth.evif&imgsize=$screen_width&dynimg=y&opt=-l&lat=$latitude&ns=$o_latitude&lon=$longitude&ew=$o_longitude&alt=35785&tle=&date=0&utc=&jd="
message "URL $url"
cur_date=$(date +%Y-%m-%d)
time=$(date +%H.%M.%S)