簡體   English   中英

如何在散景中繪制經度和​​緯度

[英]How to plot Latitude and Longitude in Bokeh

我在bokeh中創建了一個帶有X和Y軸標簽的圖形,其中顯示了緯度和經度坐標,但是使用了WMTS瓦片地圖,該地圖當然使用了Mercator投影。 我認為Bokeh正在進行某種轉換,因為在他們的文檔中他們說:

“還請注意,將x_axis_type =“ mercator”和y_axis_type =“ mercator”傳遞給圖形將生成帶有緯度和經度標簽的軸,而不是原始的Web Mercator坐標。”( https://docs.bokeh.org/en/latest/docs/ user_guide / geo.html

但是,當我繪制由LAT和LON設置的標記時,它們將忽略X和Y軸比例,而是根據墨卡托比例進行繪制

title = "test"

mercator_extent = dict(start=-20000000, end=20000000,bounds=None)

# create a tile source
tile_options = {}
tile_options['url'] = 'http://tile.stamen.com/watercolor/{z}/{x}/{y}.jpg'
tile_options['attribution'] = """
    Map tiles by <a href="http://stamen.com">Stamen Design</a>, under
    <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>.
    Data by <a href="http://openstreetmap.org">OpenStreetMap</a>,
    under <a href="http://www.openstreetmap.org/copyright">ODbL</a>.
    """

mq_tile_source = WMTSTileSource(**tile_options)

source = ColumnDataSource(data=OrderedDict(lat=([50]), lon=([50])))

x_range= Range1d(**mercator_extent)
y_range= Range1d(**mercator_extent)

plot = figure(title='printed line on map',
              tools= "pan,wheel_zoom",
              x_range=x_range,
              x_axis_type="mercator",
              y_axis_type="mercator",
              y_range=y_range,
              sizing_mode = 'stretch_both')#create a figure

plot.add_tile(mq_tile_source)#add the map

plot.circle(source=source,x='lon',y='lat',line_color ='red')

output_file("file.html")
save(plot)

我的印象是,將X和Y軸設置為“ mercator”,我的X和Y軸標簽顯示為緯度和經度,因此我的標記應相應地相對於該軸進行繪制。 換句話說,根據上面的示例,我應該具有觀察X和Y軸的標記,但我沒有。

下圖顯示了輸出; 懸停工具顯示我的數據是50 LAT和LON,因此我希望標記位於我手動繪制紫色斑點的位置,但它繪制的幾乎是死點

在此處輸入圖片說明

任何想法?

我會回答我自己的問題

標簽是LAT和LNG,但基礎圖是通過墨卡托坐標

通過將帶有Lat和Lon列的DF傳遞給以下函數,可以將LAT / LNG轉換為Mercator:

def wgs84_to_web_mercator(df, lon="LON", lat="LAT"):

      k = 6378137
      df["x"] = df[lon] * (k * np.pi/180.0)
      df["y"] = np.log(np.tan((90 + df[lat]) * np.pi/360.0)) * k

      return df

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM