<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python + folium 制作美美的地圖~

          共 8274字,需瀏覽 17分鐘

           ·

          2022-01-08 16:40


          ??????關注我,和老表一起學Python、云服務器


          今天跟大家介紹一下何使用folium更換地圖底圖樣式

          1. 準備工作


          有朋友可能沒用過folium,它其實就是python的一個專業(yè)繪制地圖的第三方庫,所以在使用之前需要先安裝它。

          pip?install?folium

          在安裝完成之后,我們可以在jupyterlab進行演示如下:

          import?folium

          m?=?folium.Map()
          m
          默認

          對于上面的輸出,其實是一個可交互的地圖,支持放大縮寫拖拽等等。

          如果你想將輸出存在本地,可以這樣來:

          m.save('map.html')

          可以看到本地就存了這個一個文件,瀏覽器打開就可以進行交互式操作了。

          map文件

          以上就是一個平平淡淡的過程......


          2. 關于folium.Map()


          在上一部分我們可以看到這個map玩意直接就是一個地圖啦,這里我們就介紹一下它常用的幾個參數(shù)。

          folium.Map(
          ????location=None,
          ????width='100%',
          ????height='100%',
          ????left='0%',
          ????top='0%',
          ????position='relative',
          ????tiles='OpenStreetMap',
          ????attr=None,
          ????min_zoom=0,
          ????max_zoom=18,
          ????zoom_start=10,
          ????min_lat=-90,
          ????max_lat=90,
          ????min_lon=-180,
          ????max_lon=180,
          ????max_bounds=False,
          ????crs='EPSG3857',
          ????control_scale=False,
          ????prefer_canvas=False,
          ????no_touch=False,
          ????disable_3d=False,
          ????png_enabled=False,
          ????zoom_control=True,
          ????**kwargs,
          )

          參數(shù)可真多啊!!

          沒有參數(shù)的folium.Map()將得到一張世界地圖。

          • location:地圖中心,[40.002694, 116.322373]是清華大學校區(qū);
          • zoom_start:比例尺,默認為10級,大約是一個城市的范圍;

          其他常用參數(shù)包括:

          • widthheight:地圖的長寬,如果是int則表示像素值,如果是str則表示百分比;
          • max_zoom:地圖可以手動調(diào)節(jié)的最大比例,默認為18級;
          • control_scale:是否在地圖上添加比例尺,默認為False;
          • no_touch:是否禁止手動操作,默認為False;
          • tiles:地圖樣式,默認為OpenStreetMap
          • attr:如果設置非內(nèi)建地圖樣式,則需要傳入這個值,可以理解為你選擇的地圖樣式名稱

          以上是常用的一些參數(shù),而最常用的莫過于 locationzoom_starttiles等。

          內(nèi)建地圖樣式還有一下幾種:

          -?"OpenStreetMap"
          -?"Mapbox?Bright"?(Limited?levels?of?zoom?for?free?tiles)
          -?"Mapbox?Control?Room"?(Limited?levels?of?zoom?for?free?tiles)
          -?"Stamen"?(Terrain,?Toner,?and?Watercolor)
          -?"Cloudmade"?(Must?pass?API?key)
          -?"Mapbox"?(Must?pass?API?key)
          -?"CartoDB"?(positron?and?dark_matter)

          我們簡單試下locationzoo_start參數(shù):

          import?folium

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????zoom_start=15,
          ???????????????control_scale=True
          ??????????????)
          m

          可以看到清華大學校區(qū)

          清華大學校區(qū)

          以上對Map的參數(shù)進行了簡單的介紹,接下來,我們就來看看地圖底圖樣式的選取情況吧~


          3. 內(nèi)建地圖底圖樣式


          我們看到folium其實有好幾種內(nèi)建地圖底圖樣式,其中部分需要去申請key,由于我這邊沒有申請成功就不做演示了。

          • "OpenStreetMap"
          • "Mapbox Bright" (Limited levels of zoom for free tiles)
          • "Mapbox Control Room" (Limited levels of zoom for free tiles)
          • "Stamen" (Terrain, Toner, and Watercolor)
          • "Cloudmade" (Must pass API key)
          • "Mapbox" (Must pass API key)
          • "CartoDB" (positron and dark_matter)

          地勢地形底圖

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='Stamen?Terrain',
          ???????????????zoom_start=15,
          ???????????????control_scale=True
          ??????????????)
          m

          黑白無標記底圖

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='Stamen?Toner',
          ???????????????zoom_start=15,
          ???????????????control_scale=True
          ??????????????)
          m

          水墨畫底圖

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='Stamen?Watercolor',
          ???????????????zoom_start=15,
          ???????????????control_scale=True
          ??????????????)
          m

          以上就是內(nèi)建地圖底圖樣式的一些展示,部分需要key的大家可以去這個網(wǎng)站申請:

          http://openwhatevermap.xyz/(可惜我上不去)

          另外,在這里也可以找到一些地圖底圖

          http://leaflet-extras.github.io/leaflet-providers/preview/

          我后續(xù)也會去研究這些地圖底圖樣式,試著分享更多有趣的地圖分享給大家。

          當然了,國內(nèi)咱們用的較多的地圖是高德、百度和騰訊地圖等,接下來我們就來玩玩!


          4. 多種第三方地圖底圖樣式


          這里我將演示高德地圖、智圖GeoQ和騰訊地圖等

          4.1. 高德地圖

          高德地圖的 中英文地圖、衛(wèi)星影像圖、街道圖與常規(guī)圖

          中英文地圖

          folium.Map([40.002694,?116.322373],
          ???????????tiles='https://webrd02.is.autonavi.com/appmaptile?lang=zh_en&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
          ???????????attr='高德-中英文對照',
          ???????????zoom_start=15,
          ??????????)

          純英文地圖

          folium.Map([40.002694,?116.322373],
          ???????????tiles='https://webrd02.is.autonavi.com/appmaptile?lang=en&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
          ???????????attr='高德-純英文對照',
          ???????????zoom_start=15,
          ??????????)

          衛(wèi)星影像圖

          tiles?=?'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}'
          folium.Map([40.002694,?116.322373],
          ???????????tiles=?tiles,
          ???????????attr='高德-衛(wèi)星影像圖',
          ???????????zoom_start=15,
          ??????????)

          街道圖
          folium.Map([40.002694,?116.322373],
          ???????????tiles=?'https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=8<ype=11',
          ???????????attr='高德-街道路網(wǎng)圖',
          ???????????zoom_start=10,
          ??????????)

          常規(guī)圖

          folium.Map([40.002694,?116.322373],
          ???????????tiles=?'https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7',
          ???????????attr='高德-常規(guī)圖',
          ???????????zoom_start=15,
          ??????????)

          4.2. 智圖GeoQ

          反正我覺得這個蠻好的,用起來簡單

          多種風格地圖,即拿即用

          彩色版

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile/{z}/{y}/{x}',
          ???????????????attr='彩色版',
          ???????????????zoom_start=15,
          ??????????????)
          m

          暖色版

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetWarm/MapServer/tile/{z}/{y}/{x}',
          ???????????????attr='暖色版',
          ???????????????zoom_start=15,
          ??????????????)
          m

          灰色版

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetGray/MapServer/tile/{z}/{y}/{x}',
          ???????????????attr='灰色版',
          ???????????????zoom_start=15,
          ??????????????)
          m

          藍黑版

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}',
          ???????????????attr='藍黑版',
          ???????????????zoom_start=15,
          ??????????????)
          m

          英文版

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunityENG/MapServer/tile/{z}/{y}/{x}',
          ???????????????attr='英文版',
          ???????????????zoom_start=15,
          ??????????????)
          m

          中國行政區(qū)劃邊界

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://thematic.geoq.cn/arcgis/rest/services/ThematicMaps/administrative_division_boundaryandlabel/MapServer/tile/{z}/{y}/{x}',
          ???????????????attr='中國行政區(qū)劃邊界',
          ??????????????)
          m

          水系專題

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://thematic.geoq.cn/arcgis/rest/services/ThematicMaps/WorldHydroMap/MapServer/tile/{z}/{y}/{x}',
          ???????????????attr='水系專題',
          ??????????????)
          m

          街道網(wǎng)圖

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://thematic.geoq.cn/arcgis/rest/services/StreetThematicMaps/Gray_OnlySymbol/MapServer/tile/{z}/{y}/{x}',
          ???????????????attr='街道網(wǎng)圖',
          ??????????????)
          m

          暖色街道網(wǎng)圖

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://thematic.geoq.cn/arcgis/rest/services/StreetThematicMaps/Warm_OnlySymbol/MapServer/tile/{z}/{y}/{x}',
          ???????????????attr='暖色-街道網(wǎng)圖',
          ??????????????)
          m

          4.3. 騰訊地圖

          tiles?=??'https://rt0.map.gtimg.com/tile?z={z}&x={x}&y={-y}'
          folium.Map([39.904989,?116.405285],
          ???????????tiles=?tiles,
          ???????????attr='騰訊地圖'??????????
          ??????????)

          4.4. 天地圖

          https://www.tianditu.gov.cn/

          需要注冊一個key

          天地圖影像

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://t7.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',
          ???????????????attr='天地圖-影像'
          ??????????????)
          m

          天地圖影像注記

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://t7.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',
          ???????????????attr='天地圖-影像標注'
          ??????????????)
          m

          天地圖矢量

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://t7.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',
          ???????????????attr='天地圖-矢量',
          ???????????????zoom_start=10,
          ??????????????)
          m

          天地圖矢量注記

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://t7.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',
          ???????????????attr='天地圖-矢量注記'
          ??????????????)
          m

          天地圖地形

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://t7.tianditu.gov.cn/ter_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',
          ???????????????attr='天地圖-地形',
          ???????????????zoom_start=3,
          ??????????????)
          m

          天地圖地形注記

          m?=?folium.Map([40.002694,?116.322373],
          ???????????????tiles='http://t7.tianditu.gov.cn/cta_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',
          ???????????????attr='天地圖-地形標記',
          ???????????????zoom_start=3,
          ??????????????)
          m

          百度地圖我這邊測試失敗了,暫時沒有找到合適的替換方案。


          5. 補充


          其實,我們還可以找更多的地圖底圖瓦片URL來進行替換,多樣化我們的地圖繪制。

          另外,大家在用經(jīng)緯度坐標點進行地圖繪制的時候,比如標記點、繪制區(qū)域、熱力圖繪制等等,需要考慮經(jīng)緯度坐標是哪個地圖系下面的,然后再用對應地圖系的相關底圖進行繪制才準確!

          如何找到我:

          瀏覽 96
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄片 操逼 | 91人妻人人澡人人精品 | 一区xxx | 女人久久久| 草比|