In this PyQt5 tutorial, we are going to learn how to embed a Folium Map in a PyQt application.
Folium is a Python library used for visualizing geospatial data. It is easy to use and yet a powerful library. Folium is a Python wrapper for Leaflet.js which is a leading open-source JavaScript library for plotting interactive maps.
Source Code:
import sys
import io
import folium # pip install folium
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout
from PyQt5.QtWebEngineWidgets import QWebEngineView # pip install PyQtWebEngine
"""
Folium in PyQt5
"""
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Folium in PyQt Example')
self.window_width, self.window_height = 1600, 1200
self.setMinimumSize(self.window_width, self.window_height)
layout = QVBoxLayout()
self.setLayout(layout)
coordinate = (37.8199286, -122.4782551)
m = folium.Map(
tiles='Stamen Terrain',
zoom_start=13,
location=coordinate
)
# save map data to data object
data = io.BytesIO()
m.save(data, close_file=False)
webView = QWebEngineView()
webView.setHtml(data.getvalue().decode())
layout.addWidget(webView)
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setStyleSheet('''
QWidget {
font-size: 35px;
}
''')
myApp = MyApp()
myApp.show()
try:
sys.exit(app.exec_())
except SystemExit:
print('Closing Window...')
🔔 Subscribe: https://www.youtube.com/channel/UCvVZ19DRSLIC2-RUOeWx8ug
#python #pyqt5