Computer >> Máy Tính >  >> Lập trình >> Python

Vẽ bản đồ Google Map bằng cách sử dụng gói folium?

Folium là một thư viện python rất mạnh mẽ cho phép bạn tạo các loại bản đồ Tờ rơi riêng biệt. Vì bản đồ Leaflet / folium có tính tương tác, vì vậy chúng rất lý tưởng để xây dựng dashborad.

Cài đặt

Cài đặt folium rất dễ dàng bằng cách sử dụng pip -

$pip install folium


Giống như bạn có thể thấy từ ảnh chụp màn hình bên dưới, bạn chỉ cần nhập lệnh trên vào bảng điều khiển / cmd của mình và pip sẽ cài đặt folium cũng như các phụ thuộc để cài đặt python của bạn.

Vẽ bản đồ Google Map bằng cách sử dụng gói folium?


Bản đồ cơ bản

#Import library
import folium

#Uses lat then lon. & zoomlevel 4.The bigger the zoom number, the closer in you get.
mapOBJ = folium.Map(location=[17.3616, 78.4747], zoom_start = 4, tiles = 'Stamen Terrain')

# save method of Map object, will create a map

mapOBJ.save('map2.html')

Đầu ra

Vẽ bản đồ Google Map bằng cách sử dụng gói folium?

Trường hợp số 2:GeoJson

import folium
import os
from folium import features
import numpy as np
import pandas as pd

N = 1000

lons = +5 - np.random.normal(size=N)
lats = 48 - np.random.normal(size=N)

data = {
   'type': 'FeatureCollection',
   'features': [
      {
         'type': 'Feature',
         'geometry': {
            'type': 'MultiPoint',
            'coordinates': [[lon, lat] for (lat, lon) in zip(lats, lons)],
         },
         'properties': {'prop0': 'value0'}
      },
   ],
}
m = folium.Map([17.3616, 78.4747], zoom_start = 10)
m.add_child(features.GeoJson(data))
m.save('Features.html')

Đầu ra:

Vẽ bản đồ Google Map bằng cách sử dụng gói folium?

Trường hợp số 3:Điểm đánh dấu, Biểu tượng, Cửa sổ bật lên

import folium
from folium import features

m = folium.Map([17.3616, 78.4747], zoom_start = 15)
mk = features.Marker([17.3616, 78.4747])
pp = folium.Popup('Charminar')
ic = features.Icon(color='red')

mk.add_child(ic)
mk.add_child(pp)
m.add_child(mk)

m.save('Features_1.html')

Đầu ra

Vẽ bản đồ Google Map bằng cách sử dụng gói folium?

Trường hợp số 4

Tôi đã sử dụng một thư viện mới - vincent, Vincent lấy cấu trúc dữ liệu Python (bộ dữ liệu, danh sách, dicts và Pandas DataFrames) và dịch chúng sang ngữ pháp trực quan hóa Vega.

Sử dụng pip, rất dễ cài đặt vincent.

$pip install vincent
C:\WINDOWS\system32>pip install vincent
Collecting vincent
Downloading https://files.pythonhosted.org/packages/11/bf/a12ecaa21a2e376a16de67e09f64a38a4acd95e04e5dc35ad2f13a6f0bfd/vincent-0.4.4.tar.gz
Requirement already satisfied: pandas in c:\python\python361\lib\site-packages (from vincent) (0.20.2)
Requirement already satisfied: pytz >= 2011k in c:\python\python361\lib\site-packages (from pandas -> vincent) (2017.2)
Requirement already satisfied: python-dateutil >= 2 in c:\python\python361\lib\site-packages (from pandas -> vincent) (2.6.0)
Requirement already satisfied: numpy >= 1.7.0 in c:\python\python361\lib\site-packages (from pandas -> vincent) (1.16.0)
Requirement already satisfied: six >= 1.5 in c:\python\python361\lib\site-packages (from python-dateutil >= 2 -> pandas -> vincent) (1.10.0)
Building wheels for collected packages: vincent
Running setup.py bdist_wheel for vincent ... done
Stored in directory: C:\Users\rajesh\AppData\Local\pip\Cache\wheels\4c\0d\8a\65f34c765c6094a71cce3e42a49a26533eef61695e9b505f03
Successfully built vincent
Installing collected packages: vincent
Successfully installed vincent-0.4.4


import folium
from folium import features
import numpy as np
import json
import vincent

N = 100

multi_iter2 = {
   'x': np.random.uniform(size=(N,)),
   'y': np.random.uniform(size=(N,)),
}

scatter = vincent.Scatter(multi_iter2, iter_idx='x', height=100, width=200)
data = json.loads(scatter.to_json())

m = folium.Map([17.3616, 78.4747], zoom_start=10)
mk = features.Marker([17.3616, 78.4747])
p = folium.Popup('Charminar')
v = features.Vega(data, width='100%', height='100%')

mk.add_child(p)
p.add_child(v)
m.add_child(mk)

m.save('Features_2.html')

Đầu ra

Vẽ bản đồ Google Map bằng cách sử dụng gói folium?