Django/개인 프로젝트1(안전한 보행길 지도)

[Django Map] Folium polygon

민돌v 2021. 9. 25. 23:56

hex point 와 Cost를 Key 와 Value로 가지고 있는 딕셔너리를 이용하여

Folium map 에 polygon 과 그 안에 툴팁(팝업 ?, 설명?) 을 추가 하려 한다.

 

방법은 folium.polygon 플러그인을 사용한다.

 


 

1. 딕셔너리를 리스트로

예를 들어 딕셔너리는 {Hex(q=1,r=-4) : 1}  -> type : hex, cost 를 가진다.

hex 좌표의 각 모서리 (정육각형의 모서리)를 Point 좌표로 변환하고, 리스트에 담느다.

Hex Corner to Point list

 

Folium Polygon 플러그인을 이용할 때 좌표의 모음을 리스트 형시으로 알려주어야한다.

리스트 안에 좌표는(위도lat, 경도lon) 순서로 보내야한다.

for hex, cost in Hexlist.items() :
        hexPointlist = grid.hex_corners(hex)
        hex_Polygon = []
        
        for point in hexPointlist :
            hex_Polygon.append([point.y,point.x])

        folium.Polygon(
            locations=hex_Polygon,
            fill = True,
            tooltip = cost
        ).add_to(map)

 

결과

 

 

참고

https://dailyheumsi.tistory.com/m/144?category=854906 

 

[지도 데이터 시각화] Part 4. Folium 살펴보기

첫 번째로 살펴볼 시각화 패키지는 Folium 입니다. leaflet.js 기반으로 지도를 그려주고, 모바일에서도 쓸 수 있을만큼 가볍습니다. 나온지도 다른 라이브러리들에 비해 상대적으로 오래된 패키지

dailyheumsi.tistory.com