세계 지도
11649 단어 Python
좌표에 근거하여 경도와 위도를 계산하다
방법을 찾았어요.
실행 예
./map1.동경py
(모든 도시에서 사용할 수 있는 것은 아닌 것 같다. 시간이 많이 걸려서 실패한 것일까? 몇 번 하면 표시된다. 로마자는 곧 표시될 것 같다.)
위도와 경도를 표시하려면 지도를 누르십시오.
잘못 알고 고쳤어요.
map1.py
#!/usr/bin/python3
# coding: UTF-8
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
from pygeocoder import Geocoder
import sys
font = {'family':'IPAGothic'} #日本語Fontを指定
args = sys.argv
argc = len(args) # 引数の個数
if (argc != 2): # 引数がない場合
print ('./map1.py 目的地の名称')
quit()
area_name = args[1]
try:
result = Geocoder.geocode(area_name)
lon1 = float(result.longitude)
lat1 = float(result.latitude)
except:
quit()
map = Basemap(llcrnrlon=lon1-2,llcrnrlat=lat1-2,urcrnrlon=lon1+2,urcrnrlat=lat1+2,resolution='h',projection='cyl')
map.shadedrelief() #標高図
map.drawcoastlines()
map.drawmeridians(np.arange(0, 360, 10))
map.drawparallels(np.arange(-90, 90, 10))
try:
while True:
a=plt.ginput(n=1)[0] #クリックして座標を取得
b=map(a[0], a[1], inverse=True) #座標を緯度・経度に変換
plt.title("東経{}° 北緯{}°".format(b[0],b[1]), **font)
except:
pass
plt.show()
지금 나는 이것을 지정하면, 도표 오른쪽 아래에 표시된 좌표가 위도와 경도를 대표한다는 것을 알아차렸다.
두 점 사이의 거리를 구하다
지도에서 두 곳을 클릭하세요.
수정점
from mpl_toolkits.basemap import pyproj
try:
while True:
aa=plt.ginput(n=1)[0] #クリックして座標を取得
bb=map(aa[0], aa[1], inverse=True) #座標を緯度・経度に変換
cc=plt.ginput(n=1)[0]
dd=map(cc[0], cc[1], inverse=True)
map.drawgreatcircle(bb[0],bb[1],dd[0],dd[1],linewidth=2,color='b') #大圏コース
gc = pyproj.Geod(a=map.rmajor,b=map.rminor) # ポイント間の距離計算
az1, az2, dist12 = gc.inv(bb[0],bb[1],dd[0],dd[1])
plt.title("2点間の距離= {} km".format(dist12/1000), **font)
except:
pass
창문에서 지구를 이동할 수 있습니까?
나는 내가 조사하는 범위 내에서는 할 수 없다고 생각한다.
plt.Show()를 종료할 수 없습니다.
무한 루프에서 창의 오른쪽 위 모서리에 있는 X 키가 끝나면 다음 디스플레이까지 10초 정도만 반복되므로 애니메이션gif를 선택했습니다.
흑백 지구는 몇 분 정도 걸린다자꾸 외로워서 그래프(산의 높이에 따라 색깔이 다르다)로 하면 파일 크기가 3~5배 정도인데 png 파일 360장을 무한 순환으로 만들려면 메모리가 부족하다?제작 시간이 갈수록 길어지고 있는데, 오류로 인해 4시간 정도 걸렸다.
마지막 20장 정도, 한 장씩 만들면 그렇게 오래 걸리지 않을 거예요.메모리를 열어야 합니까?
색깔 있는 애니메이션gif가 완성되었지만 사이즈가 너무 커서 올리지 못했습니다.
Reference
이 문제에 관하여(세계 지도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ty21ky/items/1ea94c449cdd0ec1b748텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)