Skip to content

Commit

Permalink
Merge eba4a39 into 45884ea
Browse files Browse the repository at this point in the history
  • Loading branch information
ajduberstein committed Apr 6, 2020
2 parents 45884ea + eba4a39 commit 324ee55
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 5 deletions.
33 changes: 33 additions & 0 deletions bindings/pydeck/examples/tile_3d_layer.py
@@ -0,0 +1,33 @@
import pydeck

initial_view_state = pydeck.ViewState(**{
"latitude": 46.23,
"longitude": -122.18,
"pitch": 70,
"maxPitch": 60,
"bearing": 0,
"minZoom": 2,
"maxZoom": 30,
"zoom": 13
})

layer = pydeck.Layer(
"Tile3DLayer",
data="https://assets.cesium.com/33301/tileset.json",
id="tiles-st-helens",
loader="@@#CesiumIonLoader",
# loader="@@#CesiumIonLoader",
loadOptions={
"cesium-ion": {
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxN2NhMzkwYi0zNWM4LTRjNTYtYWE3Mi1jMDAxYzhlOGVmNTAiLCJpZCI6OTYxOSwic2NvcGVzIjpbImFzbCIsImFzciIsImFzdyIsImdjIl0sImlhdCI6MTU2MjE4MTMxM30.OkgVr6NaKYxabUMIGqPOYFe0V5JifXLVLfpae63x-tA" # noqa
}
},
)


r = pydeck.Deck(
layers=[layer],
initial_view_state=initial_view_state,
)
r.to_html("tile_3d_layer.html", notebook_display=False, offline=True)
print(r.to_json())
5 changes: 5 additions & 0 deletions bindings/pydeck/pydeck/bindings/layer.py
Expand Up @@ -8,7 +8,9 @@

TYPE_IDENTIFIER = "@@type"
FUNCTION_IDENTIFIER = "@@="
CONSTANT_IDENTIFIER = "@@#"
QUOTE_CHARS = {"'", '"', "`"}
IDENTIFIERS = {"@@#", "@@=", "@@!"}


class BinaryTransportException(Exception):
Expand Down Expand Up @@ -91,6 +93,9 @@ def __init__(self, type, data, id=None, use_binary_transport=None, **kwargs):
if isinstance(v, str) and v[0] in QUOTE_CHARS and v[0] == v[-1]:
# Skip quoted strings
kwargs[k] = v.replace(v[0], "")
elif isinstance(v, str) and v[0:3] in IDENTIFIERS:
# Pass anything with a known identifier as-is
kwargs[k] = v
elif isinstance(v, str):
# Have @deck.gl/json treat strings values as functions
kwargs[k] = FUNCTION_IDENTIFIER + v
Expand Down
17 changes: 12 additions & 5 deletions bindings/pydeck/pydeck/io/html.py
Expand Up @@ -16,7 +16,7 @@ def convert_js_bool(py_bool):
return "true" if py_bool else "false"


in_google_collab = 'google.colab' in sys.modules
in_google_collab = "google.colab" in sys.modules


TEMPLATES_PATH = os.path.join(os.path.dirname(__file__), "./templates/")
Expand All @@ -27,14 +27,21 @@ def convert_js_bool(py_bool):
DECKGL_SEMVER
)


def produce_script_tag(destination):
with open(join(dirname(__file__), destination), "r") as f:
js = f.read()
return "<script type='text/javascript'>" + js + "</script>"


def cdn_picker(offline=False):
if offline:
with open(join(dirname(__file__),'./static/index.js'), 'r') as file:
js = file.read()
return "<script type=text/javascript>" + js + "</script>"

index_tag = produce_script_tag("../nbextension/static/index.js")
index_map_tag = produce_script_tag("../nbextension/static/index.js.map")
return "{}\n{}".format(index_tag, index_map_tag)
return "<script src=" + CDN_URL + "></script>"


def render_json_to_html(
json_input,
mapbox_key=None,
Expand Down
1 change: 1 addition & 0 deletions modules/jupyter-widget/package.json
Expand Up @@ -38,6 +38,7 @@
"@loaders.gl/3d-tiles": "^2.1.1",
"@loaders.gl/core": "^2.1.1",
"@loaders.gl/csv": "^2.1.1",
"@loaders.gl/draco": "^2.1.1",
"@luma.gl/constants": "^8.1.0",
"mapbox-gl": "^1.2.1"
},
Expand Down
11 changes: 11 additions & 0 deletions modules/jupyter-widget/src/create-deck.js
Expand Up @@ -8,6 +8,13 @@ import {registerLoaders} from '@loaders.gl/core';

import * as deck from './deck-bundle';

// See https://github.com/uber/deck.gl/blob/d74e375ddef5e2ac222641a2b93e1f4287d668f1/examples/playground/src/configuration.js#L14
import {DracoWorkerLoader} from '@loaders.gl/draco';
import {Tiles3DLoader, CesiumIonLoader} from '@loaders.gl/3d-tiles';

// Note: deck already registers JSONLoader...
registerLoaders([CSVLoader, DracoWorkerLoader]);

import {loadScript} from './script-utils';

import GL from '@luma.gl/constants';
Expand All @@ -29,6 +36,10 @@ const jsonConverterConfiguration = {
enumerations: {
COORDINATE_SYSTEM: deck.COORDINATE_SYSTEM,
GL
},
constants: {
CesiumIonLoader,
Tiles3DLoader
}
};

Expand Down
22 changes: 22 additions & 0 deletions yarn.lock
Expand Up @@ -1588,6 +1588,15 @@
"@loaders.gl/core" "2.1.1"
"@loaders.gl/tables" "2.1.1"

"@loaders.gl/draco@^2.1.1":
version "2.1.2"
resolved "https://registry.yarnpkg.com/@loaders.gl/draco/-/draco-2.1.2.tgz#a1527a2cd4c6976cac2254f92804b7719d4bf09c"
integrity sha512-34siFYpIywsfd12DPp5xhCcnADNgAgvw5HYUtEQj41RdrvgzRZmjDgMQSWV7dgJOlfbRASHK4/hTlJ52sB2CaA==
dependencies:
"@babel/runtime" "^7.3.1"
"@loaders.gl/loader-utils" "2.1.2"
draco3d "^1.3.4"

"@loaders.gl/gltf@2.1.1":
version "2.1.1"
resolved "https://registry.yarnpkg.com/@loaders.gl/gltf/-/gltf-2.1.1.tgz#303729b609b75bd199ebde59fe7a754e33caa955"
Expand All @@ -1612,6 +1621,14 @@
"@babel/runtime" "^7.3.1"
"@probe.gl/stats" "^3.2.1"

"@loaders.gl/loader-utils@2.1.2":
version "2.1.2"
resolved "https://registry.yarnpkg.com/@loaders.gl/loader-utils/-/loader-utils-2.1.2.tgz#271892be6b0f39b2b1c50e24d531875f6281d0da"
integrity sha512-JfhNkvP1SdDBNKT0FeuK/ZlYWeDZJoY0lgWQlYvOY9F4Uc+Lhxwl1nDvUJUYZa2PKgPgTmYP++pGOzSaR1hnoQ==
dependencies:
"@babel/runtime" "^7.3.1"
"@probe.gl/stats" "^3.2.1"

"@loaders.gl/math@2.1.1":
version "2.1.1"
resolved "https://registry.yarnpkg.com/@loaders.gl/math/-/math-2.1.1.tgz#981a1b43711ab093bd4acd17ad7a2552efb2c6f3"
Expand Down Expand Up @@ -4341,6 +4358,11 @@ dotignore@~0.1.2:
dependencies:
minimatch "^3.0.4"

draco3d@^1.3.4:
version "1.3.6"
resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.3.6.tgz#e4d9e7d846637775328c903721c932b953dce331"
integrity sha512-zZoH5JNcdWDrUb2ks2mbzGDUUPvDaDf1ysTJS2St+3/F/8XcKAX4VKgzPjTP7MfHegHQ7Udv8ovS+R3AgXlH7g==

duplexer@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
Expand Down

0 comments on commit 324ee55

Please sign in to comment.