首页 > 解决方案 > Python:从数据库输出到 Folium 的错误传输

问题描述

我正在尝试使用 Python 从 MySQL 数据库中读取坐标,并使用 Folium 在地图上重现它们。

但我注意到只有最后 43 条记录被输出并输入到地图中,我不知道为什么。我有一种感觉,我再也看不到树木了。

也许你可以帮助我如何读出所有 43 个数据集?

我有下面的完整代码,包括此代码输出的屏幕截图:

import folium
import mysql
import mysql.connector

mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        passwd="",
        database="firmen"
    )


if(mydb):
    print("Verbindung erfolgreich")

else:
    print("Verbindung fehlgeschlagen")


cursor = mydb.cursor()
cursor.execute("SELECT * from leipzig")
result = cursor.fetchall()
cursor.close()

#13 = Longitude and 12 = Latitude
for data in result:
    ID = data[0]
    name = data[1]
    lon = data[13]
    lat = data[12]

      
mydb.close()
print("Verbindung geschlossen")



# Create a Map instance
mymap = folium.Map(location=[51.268360, 12.419357], tiles='stamentoner',
                   zoom_start=10, control_scale=True)

tooltipMeta = ID, name


folium.Marker([lon,lat], tooltip=tooltipMeta).add_to(mymap)

folium.TileLayer('stamenwatercolor').add_to(mymap)

folium.LayerControl().add_to(mymap)

# Display the map
mymap

代码输出截图

标签: mysql

解决方案


@sentence 和 @borisdonchev 是对的,其中的部分

folium.Marker([lon,lat], tooltip=tooltipMeta).add_to(mymap)

应该成为

for data in result:
    ID = data[0]
    name = data[1]
    lon = data[13]
    lat = data[12]

    tooltipMeta = ID, name

    folium.Marker([lon,lat], tooltip=tooltipMeta).add_to(mymap)

推荐阅读