了解 argparse 以获取带有推文地理位置的动态地图
Understanding argparse to get dynamic maps with Geo-Location of tweets
我在网上找到了这个 python 代码 (twitter_map_clustered.py
),它(我认为)有助于使用不同推文的地理数据创建地图。:
from argparse import ArgumentParser
import folium
from folium.plugins import MarkerCluster
import json
def get_parser():
parser = ArgumentParser()
parser.add_argument('--geojson')
parser.add_argument('--map')
return parser
def make_map(geojson_file, map_file):
tweet_map = folium.Map(Location=[50, 5], max_zoom=20)
marker_cluster = MarkerCluster().add_to(tweet_map)
geodata= json.load(open(geojson_file))
for tweet in geodata['features']:
tweet['geometry']['coordinates'].reverse()
marker = folium.Marker(tweet['geometry']['coordinates'], popup=tweet['properties']['text'])
marker.add_to(marker_cluster)
#Save to HTML map file
tweet_map.save(map_file)
if __name__ == '__main__':
parser = get_parser()
args = parser.parse_args()
make_map(args.geojson, args.map)
我设法提取了不同推文的地理信息并将其保存到 geo_data.json
文件中。但是,我无法理解代码,特别是函数 def get_parser()
.
看来我们需要在命令提示符下运行加载文件时添加参数。参数应为 geo_data.json
。但是,它还要求一张地图? parser.add_argument('--map')
为什么会这样?在代码中,我们不是在这里创建地图吗?
#Save to HTML map file
tweet_map.save(map_file)
你能帮帮我吗?您如何 运行 python 脚本?我遗漏了什么重要的东西吗?
正如 argparse
documentation 所解释的那样,它只是询问 geojson 文件的名称以及您的代码将用于保存地图的名称。
因此,您将运行:
python twitter_map_clustered.py --geojson geo_data.json --map mymap.html
你会得到一张名为mymap.html
的地图。
我在网上找到了这个 python 代码 (twitter_map_clustered.py
),它(我认为)有助于使用不同推文的地理数据创建地图。:
from argparse import ArgumentParser
import folium
from folium.plugins import MarkerCluster
import json
def get_parser():
parser = ArgumentParser()
parser.add_argument('--geojson')
parser.add_argument('--map')
return parser
def make_map(geojson_file, map_file):
tweet_map = folium.Map(Location=[50, 5], max_zoom=20)
marker_cluster = MarkerCluster().add_to(tweet_map)
geodata= json.load(open(geojson_file))
for tweet in geodata['features']:
tweet['geometry']['coordinates'].reverse()
marker = folium.Marker(tweet['geometry']['coordinates'], popup=tweet['properties']['text'])
marker.add_to(marker_cluster)
#Save to HTML map file
tweet_map.save(map_file)
if __name__ == '__main__':
parser = get_parser()
args = parser.parse_args()
make_map(args.geojson, args.map)
我设法提取了不同推文的地理信息并将其保存到 geo_data.json
文件中。但是,我无法理解代码,特别是函数 def get_parser()
.
看来我们需要在命令提示符下运行加载文件时添加参数。参数应为 geo_data.json
。但是,它还要求一张地图? parser.add_argument('--map')
为什么会这样?在代码中,我们不是在这里创建地图吗?
#Save to HTML map file
tweet_map.save(map_file)
你能帮帮我吗?您如何 运行 python 脚本?我遗漏了什么重要的东西吗?
正如 argparse
documentation 所解释的那样,它只是询问 geojson 文件的名称以及您的代码将用于保存地图的名称。
因此,您将运行:
python twitter_map_clustered.py --geojson geo_data.json --map mymap.html
你会得到一张名为mymap.html
的地图。