Область маркера с увеличенным масштабом - PullRequest
1 голос
/ 30 мая 2020

У меня есть несколько маркеров (выраженных как широта, долгота) на моей карте (я использую Scatter Geo), все они с краями, проходящими через них.

Мне нужно получить увеличенное изображение для некоторого маркера и сохранить это представление в файл .png.

Я мог бы сделать это вручную, увеличивая каждый промежуточный маркер и делая снимок экрана, но я хотел бы сделать это с помощью кода.

Как это возможно создать al oop для списка маркеров и сделать снимок экрана области вокруг указанного c маркера?

Круг / область с маркером в центре и радиусом 5 км может быть достаточно

1 Ответ

0 голосов
/ 01 июня 2020

При использовании Scattergeo вы можете использовать center и projection_scale, чтобы вернуться в область.

projection_scale аналогично уровню масштабирования и не является очевидным аргументом для использования:

Увеличение или уменьшение масштаба изображения карты. Масштаб «1» соответствует наибольшему уровню масштабирования, который соответствует диапазонам долготы и широты карты.

Ниже приведен пример, адаптированный из здесь .

import plotly.graph_objects as go

import pandas as pd

df = pd.read_csv('2011_february_us_airport_traffic.csv')
df['text'] = df['airport'] + '' + df['city'] + ', ' + df['state'] + '' + 'Arrivals: ' + df['cnt'].astype(str)

fig = go.Figure(data=go.Scattergeo(
        lon = df['long'], lat = df['lat'],
        text = df['text'],
        mode = 'markers',
        marker_color = df['cnt'],
        ))

fig.update_layout(
        title = 'Most trafficked US airports<br>(Hover for airport names)',
        geo = dict(
            scope='usa',
            projection_type='albers usa',
            showland = True
        ))

# focus point
lat_foc = 35.21401111
lon_foc = -80.94312583
fig.update_layout(
        geo = dict(
            projection_scale=10, #this is kind of like zoom
            center=dict(lat=lat_foc, lon=lon_foc), # this will center on the point
        ))

fig.show()
...