Notice
Recent Posts
Recent Comments
Link
헤더파일
자전거야 놀자 - Open API 를 사용한 파이썬 프로그램 본문
개발 환경
- 파이썬 3.6
- Pycharm
- 공공 데이터 포털 API
프로그램 소개
- 지명 검색으로 지도 사진을 볼 수 있습니다.
- 현재 미세먼지, 날씨 정보를 검색할 수 있습니다.
- 지도 사진과 날씨, 미세먼지 정보를 메일로 보낼 수 있습니다.
- 자전거 도로 지도를 검색할 수 있습니다.


프로그램 특징
OpenAPI 사용
공공 데이터 포털의 OpenAPI를 활용하여 실시간으로 데이터를 얻어옵니다. 얻어온 XML형태의 데이터를 파싱 하여 원하는 정보를 얻어왔습니다.
def ForeCast():
server = "www.kma.go.kr"
url ="/weather/forecast/mid-term-rss3.jsp?stnId=108"
conn = HTTPConnection(server) # 서버에 연결
conn.request("GET", url) # 주소 뒷부분 더하기
req = conn.getresponse() # 성공적인 연결이 됬다면 req에 데이터와 상태정보가 들어간다.
if (req.status == 200): # req.status가 200이면 연결 완료!
# cLen = req.getheader("Content-Length") # 가져온 데이터 길이
dataFromAPI = (req.read().decode('utf-8')) # 데이터를 한글로 읽기
tree = ET.fromstring(dataFromAPI) # 가져온 데이터는 string 형태기 때문에 elemetal Tree형태의 xml로 파싱
dataList = tree.getiterator("data") # <row>.....</row>사이 값들을 리스트형태로 저장
count = 0
returnList = []
for element in dataList:
for data in element:
count=count+1
if (count<3):
returnList.append(element[2].text)
else:
return returnList
지도 API
제작 당시 웹버전이 아닌 python application에서 쓸 수 있는 지도 API가 없었습니다. 지도를 웹페이지 상에서 띄우고 웹페이지에서 지도 사진을 얻어와 띄우는 방식으로 구현하였습니다.
def GetMap(coord=[35.213145, 129.1076011]):
map_osm = folium.Map(location=[coord[0], coord[1]], zoom_start=15)
# 마커 지정
folium.Marker([coord[0], coord[1]], popup='Mt. Hood Meadows').add_to(map_osm)
# html 파일로 저장\
delay = 5
fn = 'testmap.html'
map_osm.save(fn)
tmpurl = 'file://{path}/{mapfile}'.format(path=os.getcwd(), mapfile=fn)
browser = webdriver.Chrome('C:/Users/didxo/Documents/GitHub/project/chromedriver.exe')
browser.get(tmpurl)
# Give the map tiles some time to load
time.sleep(delay)
browser.save_screenshot('SearchMap.gif')
browser.quit()
'포트폴리오 정리' 카테고리의 다른 글
드론 마스터 - 드론 자격증 시뮬레이터 (0) | 2019.09.15 |
---|---|
Drone Tracks - 드론 레이싱 게임 (2) | 2019.08.26 |
랜덤 유닛 디펜스 - 파이썬 2D 게임 (0) | 2019.08.15 |
Shape Shooter - OpenGL 3D 게임 (0) | 2019.08.13 |
탱크 러시 - 네트워크 2D 게임 (0) | 2019.08.02 |
Comments