Создание меток на карте в Python - PullRequest
0 голосов
/ 02 июня 2018

Здравствуйте, у меня есть следующий json-файл с информацией о 6.000 ресторанах в Лас-Вегасе, таких как: «имя», «долгота», «широта». Я хочу создать карту и метки булавки карты, используя «долготу», «широта »каждой точки и для отображения« имени »каждого ресторана на карте. Я использую pycharm и python 3.6.5 (32-разрядные). Я пытаюсь импортировать библиотеку фолиума, она работает, но не отображает имяКаждый ресторан на карте. Как я могу отобразить название каждого ресторана на карте? Заранее спасибо!

Файл json yelp_restaurant_Las_Vegas:

{ 
"_id" : ObjectId("5a9eb7b2a2f96c346024f239"), 
"city" : "Las Vegas", 
"neighborhood" : "Southeast", 
"name" : "Flight Deck Bar & Grill", 
"business_id" : "Pd52CjgyEU3Rb8co6QfTPw", 
"longitude" : -115.1708484, 
"hours" : {
    "Monday" : "8:30-22:30", 
    "Tuesday" : "8:30-22:30", 
    "Friday" : "8:30-22:30", 
    "Wednesday" : "8:30-22:30", 
    "Thursday" : "8:30-22:30", 
    "Sunday" : "8:30-22:30", 
    "Saturday" : "8:30-22:30"
}, 
"state" : "NV", 
"postal_code" : "89119", 
"categories" : [
    "Nightlife", 
    "Bars", 
    "Barbeque", 
    "Sports Bars", 
    "American (New)", 
    "Restaurants"
], 
"stars" : 4.0, 
"address" : "6730 S Las Vegas Blvd", 
"latitude" : 36.0669136, 
"review_count" : NumberInt(13), 
"is_open" : NumberInt(1), 
  .
  .
  .

Код:

from pymongo import MongoClient
import pandas as pd
import folium
from IPython.display import HTML
client = MongoClient("localhost",27017)

db = client.Desktop
collection1 =db.yelp_restaurant_Las_Vegas
reviews=pd.DataFrame(list(collection1.find()))


mapi_osm = folium.Map(location=())
reviews.apply(lambda row:folium.CircleMarker(location[row["latitude"],row["longitude"]]).add_to(mapi_osm),axis=1)

mapi_osm.save('spst.html')

1 Ответ

0 голосов
/ 02 июня 2018

Добавьте всплывающие окна к вашим маркерам.

Если вы хотите, чтобы они открывались автоматически, вам понадобится последний фолиум от github (так как версия на pypi недостаточно новая).Поддержка вызова openPopup листовки через параметр show была добавлена ​​пару недель назад.Если вас не волнует, что они автоматически открываются, это не имеет значения (просто избавьтесь от параметра show конструктора Popup).

pip install git+https://github.com/python-visualization/folium.git
reviews.apply(lambda row:folium.CircleMarker(
          location=[row["latitude"],row["longitude"]],
          popup=Popup(row['name'],show=True)).add_to(mapi_osm),axis=1)

Вот минимальный пример:

import folium
from folium.map import Popup

m = folium.Map(location=())
folium.CircleMarker(location=(36.112625, -115.176704), popup=Popup('Picasso', show=True)).add_to(m)
m.save('map.html')
...