728x90
반응형
지도만들기 Map()
folium.Map(location=[위도, 경도], zoom_start=줌 횟수) 으로 원하는 위치를 중심으로 확대하여 볼 수 있다.
tiles 옵션을 적용하면 지도에 적용하는 스타일을 변경하여 지정할 수 있다.
- “OpenStreetMap” (default)
- “Mapbox Bright” (Limited levels of zoom for free tiles)
- “Mapbox Control Room” (Limited levels of zoom for free tiles)
- “Stamen” (Terrain, Toner, and Watercolor)
- 'Stamen Terrain' - 산악지형 등의 지형이 보다 선명하게 드러난다.
- 'Stamen Toner' - 흑백 스타일로 도로망을 강조해서 보여준다.
- “Cloudmade” (Must pass API key)
- “Mapbox” (Must pass API key)
- “CartoDB” (positron and dark_matter)
전체 매개변수
- location (tuple or list, default None) – 지도의 위도(Latitude)와 경도(Longitude) ;
- width (pixel int or percentage string (default: '100%')) – 지도의 너비를 지정한다.
- height (pixel int or percentage string (default: '100%')) – 지도의 높이를 지정한다.
- tiles (str, default 'OpenStreetMap') – 기본 제공 타일 목록에서 선택하거나 사용자 지정 URL을 전달하거나 None을 전달하여 타일 없이 지도를 생성할 수도 있다. 고급 타일 레이어 옵션의 경우 TileLayer 클래스를 사용한다.
- attr (string, default None) – 사용자 지정 타일 URL을 전달하는 경우 지도 타일 속성
- min_zoom (int, default 0) – 생성되는 타일 레이어에 허용되는 최소 확대 수준
- max_zoom (int, default 18) – 생성되는 타일 레이어에 허용되는 최대 확대 수준
- zoom_start (int, default 10) – 지도의 초기 확대/축소 수준 ; location이 잘못되거나 None일 경우 세계지도를 1번 확대한 상태로 만들어진다.
- min_lat (float, default -90) - 최소 위도
- max_lat (float, default 90) - 최대 위도
- min_lon (float, default -180) - 최소 경도
- max_lon (float, default 180) - 최대 경도
- max_bounds (bool, default False) - 지도 보기를 지정된 경계로 제한한다.
- crs (str, default 'EPSG3857') – Defines coordinate reference systems for projecting geographical points into pixel (screen) coordinates and back. You can use Leaflet’s values : * EPSG3857 : The most common CRS for online maps, used by almost all free and commercial tile providers. Uses Spherical Mercator projection. Set in by default in Map’s crs option. * EPSG4326 : A common CRS among GIS enthusiasts. Uses simple Equirectangular projection. * EPSG3395 : Rarely used by some commercial tile providers. Uses Elliptical Mercator projection. * Simple : A simple CRS that maps longitude and latitude into x and y directly. May be used for maps of flat surfaces (e.g. game maps). Note that the y axis should still be inverted (going from bottom to top).
- control_scale (bool, default False) – True일 경우 오른쪽 아래 축척을 표시한다.
- prefer_canvas (bool, default False) – Leaflet의 Canvas back-end에 SVG대신 Vector layer (사용가능할 경우에만)를 사용하게 합니다. 경우에 따라서 성능을 상당히 향상시킬 수 있다. ( 예: 지도에 수천 개의 원 마커를 표시할 경우)
- no_touch (bool, default False) – Leaflet이 터치 이벤트를 감지하더라도 사용하지 않도록 한다.
- disable_3d (bool, default False) – Leaflet가 CSS 3D 변환을 사용하지 않도록 한다. 일부 드문 환경에서 결함이 발생할 수 있다.
- png_enabled (bool, default False) -
- zoom_control (bool, default True) – 지도에 확대/축소 컨트롤을 표시한다.
- **kwargs – 추가 키워드 인수가 Leaflets Map 클래스에 전달된다. : Leaflets Map 클래스 정보는 여기
예시
import folium
seoul_map = folium.Map(
location=[37.55,126.98],
zoom_start=12,
control_scale=True, # 축척표시 default : False
)
# location이 잘못되면 세계지도크기로 가져온다. 오류발생안함
# 파일로 저장
seoul_map.save('./output/seoul.html')
실행결과 다음과 같은 코드를 가진 html이 만들어진다.
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script>
L_NO_TOUCH = false;
L_DISABLE_3D = false;
</script>
<style>html, body {width: 100%;height: 100%;margin: 0;padding: 0;}</style>
<style>#map {position:absolute;top:0;bottom:0;right:0;left:0;}</style>
<script src="https://cdn.jsdelivr.net/npm/leaflet@1.6.0/dist/leaflet.js"></script>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.6.0/dist/leaflet.css"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css"/>
<meta name="viewport" content="width=device-width,
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
#map_4d55a341987d48b0b21604ba0a743377 {
position: relative;
width: 100.0%;
height: 100.0%;
left: 0.0%;
top: 0.0%;
}
</style>
</head>
<body>
<div class="folium-map" id="map_4d55a341987d48b0b21604ba0a743377" ></div>
</body>
<script>
var map_4d55a341987d48b0b21604ba0a743377 = L.map(
"map_4d55a341987d48b0b21604ba0a743377",
{
center: [37.55, 126.98],
crs: L.CRS.EPSG3857,
zoom: 12,
zoomControl: true,
preferCanvas: false,
}
);
L.control.scale().addTo(map_4d55a341987d48b0b21604ba0a743377);
var tile_layer_d8dad308fa204c849b9cae896fe8784d = L.tileLayer(
"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
{"attribution": "Data by \u0026copy; \u003ca href=\"http://openstreetmap.org\"\u003eOpenStreetMap\u003c/a\u003e, under \u003ca href=\"http://www.openstreetmap.org/copyright\"\u003eODbL\u003c/a\u003e.", "detectRetina": false, "maxNativeZoom": 18, "maxZoom": 18, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
).addTo(map_4d55a341987d48b0b21604ba0a743377);
</script>
728x90
반응형
'Python 파이썬 > Folium' 카테고리의 다른 글
Folium ) 단계구분도 Choropleth Map (0) | 2022.04.04 |
---|---|
Folium ) 지도에 다양한 마커 표시하기 (0) | 2022.04.01 |
Folium ) 소개 (0) | 2022.03.31 |
댓글