def make_renderer(nodes, use_binary_transport=False): """Creates the pydeck visualization for rendering""" view_state = pydeck.ViewState( offset=[0, 0], latitude=None, longitude=None, bearing=None, pitch=None, zoom=10, ) views = [pydeck.View(type="OrbitView", controller=True)] nodes_layer = pydeck.Layer( "PointCloudLayer", nodes, get_position="position", get_normal=[10, 100, 10], get_color="color", pickable=True, # Set use_binary_transport to `True` use_binary_transport=use_binary_transport, auto_highlight=True, highlight_color=[255, 255, 0], radius=50, ) return pydeck.Deck( layers=[nodes_layer], initial_view_state=view_state, views=views, map_provider=None, )
def __init__(self, **params): """ initialize pydeck object, and set a listener on self.data """ super(PanelDeck, self).__init__(**params) self._view_state = pdk.ViewState(**self.spec["initialViewState"], bearing=0.45) self._layers = pdk.Layer("PolygonLayer", data=self.data, **self.spec["layers"][0]) self._tooltip = {"html": self.get_tooltip_html()} self._deck = pdk.Deck( mapbox_key=self.spec["mapboxApiAccessToken"], views=[ pdk.View( type="MapView", controller=True, height="100%", width="100%", ) ], layers=[self._layers], initial_view_state=self._view_state, tooltip=self._tooltip, ) if self.spec["map_style"]: self._deck.map_style = self.spec["map_style"] self.pane = pn.pane.DeckGL( self._deck, sizing_mode=self.sizing_mode, height=self.height, css_classes=["deck-chart"], ) self.param.watch(self._update, ["data"])
extruded=True, coverage=1, ) # Set the viewport location view_state = pdk.ViewState( longitude=-1.415, latitude=52.2323, zoom=6, min_zoom=5, max_zoom=15, pitch=40.5, bearing=-27.36, ) map_view = pdk.View("MapView", width="75%", height="600px", controller=True) # Render r = pdk.Deck( layers=[layer], initial_view_state=view_state, mapbox_key=mapbox_api_token, views=[map_view], ) app = dash.Dash(__name__) app.layout = html.Div( dash_deck.DeckGL(r.to_json(), id="deck-gl", tooltip=True,
def is_green(fuel_type): if fuel_type.lower() in ("nuclear", "water", "wind", "hydro", "biomass", "solar", "geothermal"): return [0, 255, 0] return [255, 255, 0] df["color"] = df["primary_fuel"].apply(is_green) view_state = pydeck.ViewState(latitude=51.47, longitude=0.45, zoom=4) layers = [] # Set height and width variables view = pydeck.View(type="_GlobeView", controller=True, width=1000, height=700) layers = [ pydeck.Layer( "GeoJsonLayer", id="base-map", data=COUNTRIES, stroked=False, filled=True, get_line_color=[60, 60, 60], get_fill_color=[200, 200, 200], ), pydeck.Layer( "ColumnLayer", id="power-plant", data=df,
def build_deck(mode, pc_df, polygon_data): if mode == "first_person": view = pdk.View(type="FirstPersonView", controller=True) view_state = pdk.ViewState(latitude=0, longitude=0, bearing=-90, pitch=15) point_size = 10 elif mode == "orbit": view = pdk.View(type="OrbitView", controller=True) view_state = pdk.ViewState( target=[0, 0, 1e-5], controller=True, zoom=23, rotation_orbit=-90, rotation_x=15, ) point_size = 3 else: view_state = pdk.ViewState( latitude=0, longitude=0, bearing=45, pitch=50, zoom=20, max_zoom=30, position=[0, 0, 1e-5], ) view = pdk.View(type="MapView", controller=True) point_size = 1 pc_layer = pdk.Layer( "PointCloudLayer", data=pc_df, get_position=["x", "y", "z"], get_color=[255, 255, 255], auto_highlight=True, pickable=False, point_size=point_size, coordinate_system=2, coordinate_origin=[0, 0], ) box_layer = pdk.Layer( "PolygonLayer", data=polygon_data, stroked=True, pickable=True, filled=True, extruded=True, opacity=0.2, wireframe=True, line_width_min_pixels=1, get_polygon="polygon", get_fill_color="color", get_line_color=[255, 255, 255], get_line_width=0, coordinate_system=2, get_elevation="elevation", ) tooltip = {"html": "<b>Label:</b> {name}"} r = pdk.Deck( [pc_layer, box_layer], initial_view_state=view_state, views=[view], tooltip=tooltip, map_provider=None, ) return r
extruded=True, coverage=1, ) # Set the viewport location view_state = pdk.ViewState( longitude=-1.415, latitude=52.2323, zoom=6, min_zoom=5, max_zoom=15, pitch=40.5, bearing=-27.36, ) map_view = pdk.View("MapView", controller=True) # Render r = pdk.Deck( layers=[layer], initial_view_state=view_state, mapbox_key=mapbox_api_token, views=[map_view], ) # Start building the layout here styles = { "json-output": { "overflowY": "scroll", "height": "calc(50% - 25px)", "border": "thin lightgrey solid",
""" import pydeck import pandas as pd DATA_URL = "https://raw.githubusercontent.com/ajduberstein/geo_datasets/master/small_waterfall.csv" df = pd.read_csv(DATA_URL) target = [df.x.mean(), df.y.mean(), df.z.mean()] point_cloud_layer = pydeck.Layer( "PointCloudLayer", data=DATA_URL, get_position=["x", "y", "z"], get_color=["r", "g", "b"], get_normal=[0, 0, 15], auto_highlight=True, pickable=True, point_size=3, ) view_state = pydeck.ViewState(target=target, controller=True, rotation_x=15, rotation_orbit=30, zoom=5.3) view = pydeck.View(type="OrbitView", controller=True) r = pydeck.Deck(point_cloud_layer, initial_view_state=view_state, views=[view]) r.to_html("point_cloud_layer.html", css_background_color="#add8e6")