1+ import json
2+
3+ from htmltools import h1
4+ from shinywidgets import reactive_read , render_widget
5+
16import openlayers as ol
2- from shiny .express import render , ui , input
37from shiny import reactive
4-
5- from shinywidgets import render_widget , reactive_read
8+ from shiny .express import input , render , ui
69
710city_centers = {
811 "London" : (51.5074 , 0.1278 ),
912 "Paris" : (48.8566 , 2.3522 ),
10- "New York" : (40.7128 , - 74.0060 )
13+ "New York" : (40.7128 , - 74.0060 ),
1114}
1215
16+ h1 ("python-openlayers" )
17+
1318ui .input_select ("center" , "Center" , choices = list (city_centers .keys ()))
1419
20+
1521@render_widget
1622def ol_map ():
1723 lat , lon = city_centers ["London" ]
18- m = ol .MapWidget ()
19- m .set_center (lon , lat )
20- m .set_zoom (8 )
24+ m = ol .MapWidget (
25+ ol .View (center = (lon , lat ), zoom = 8 ),
26+ controls = [ol .OverviewMapControl (collapsed = False )],
27+ )
2128 return m
2229
2330
2431@render .code
2532def info ():
2633 view_state = reactive_read (ol_map .widget , "view_state" )
27- return str (view_state )
34+ return json .dumps (view_state , indent = 2 )
35+
2836
2937@reactive .effect
3038def _ ():
3139 lat , lon = city_centers [input .center ()]
32- ol_map .widget .set_center (lon , lat )
40+ ol_map .widget .set_center (lon , lat )
0 commit comments