Skip to main content

No project description provided

Project description

Embeddable mapping application

This Svelte app and related Python code are intended to provide a minimal, embeddable interactive map for embedding in Jupyter notebooks, especially those built into static websites using JupyterBook. By using IFrame widgets to call the deployed application with a specific URL containing the desired state, a Jupyter user can render geospatial data that has been stored in GCS. This avoids the problem of ipyleaflet and other Jupyter visualization widgets that store their data in the static HTML of a rendered JupyterBook webpage. The Python code in calitp_map_utils defines the contract between data producers (i.e. notebooks) and the data consumer (i.e. the Svelte app) as well as provides some utilities for validating the GeoJSON of specific analysis types.

calitp_map_utils

As mentioned above, calitp_map_utils is a small utility library that defines Pydantic types that can be used for data validation as well as Typescript types for type-hinting in the Svelte app. Also, the library contains a few CLI commands to facilitate validating pre-existing data with those types and/or generate a quick URL with state for testing.

TODO: a GitHub Action workflow exists to build the package, but it does not currently publish to pypi; right now that is done manually with poetry publish.

Developing the maps app

You can run a development server locally; use the calitp-map-utils CLI to generate a valid state URL for testing.

npm run dev
echo '{ "legend_url": "https://storage.googleapis.com/calitp-map-tiles/legend_test.svg", "layers": [ {"name": "D7 State Highway Network", "url": "https://storage.googleapis.com/calitp-map-tiles/d7_shn.geojson.gz", "type": "state_highway_network"}, {"name": "California High Quality Transit Areas - Stops", "url": "https://storage.googleapis.com/calitp-map-tiles/ca_hq_transit_stops.geojson.gz"}, {"name": "LA Metro Bus Speed Maps AM Peak", "url": "https://storage.googleapis.com/calitp-map-tiles/metro_am.geojson.gz", "type": "speedmap"} ] }' | gzip | basenc --base64url | poetry run python -m calitp_map_utils validate-state --base64url --compressed --data --verbose --host=http://localhost:5173
...
URL: localhost:5173?state=H4sIAO38fWQC_6WSMU_DMBCF_8opM03GSt0KDAwUgcqGkHVNr47B8RnfhZJW_e8kbVE6FAY6WSef3_fek7dZwJqyCYTG-yvIPLaUpJtftj832e0Y5opKcOdstcYWHkjXnN6zbr9Jvl-pVKNMikKUE1rKLbP1hNFJXnJdlOidxlGNcaTOkxTLsZEq5Jb4Tbg7N72WtnHPkx5mqgPMhAEWE0dK6kiOhndXMNi86SArTsHh3ig8NT21heeEQZzCNBEKjLosHOUC7yWa6sPoQdVIr3Y-yLHSv13fT2FGmhiuG4F5JFrCDKPAdAaPhJd0XPeyBuvfWu5Z3fb5Yl_3f0GN5zAk2TDXw7RY8NfJhEKdmik5rJw9-VBkKSzNPzMcXyuJ5vJps9039EE5DrACAAA%3D

You can point the --host parameter at a Netlify URL to provide an easy way to test against an already-published version of the app. As of 2023-07-21 the production URL is https://embeddable-maps.calitp.org but you can also use preview Netlify sites deployed via netlify deploy ... with --alias=some-alias and/or without the --prod flag (see below).

Build and deploy to Netlify

The site is deployed to production on merges to main, as defined in ../../.github/workflows/deploy-apps-maps.yml.

You may also deploy manually with the following:

(from the apps/maps folder)
npm run build
netlify deploy --site=embeddable-maps-calitp-org --dir=build

By default, this deploys a preview site with a generated alias prefix. You may pass an explicit alias with --alias=<some-alias> or deploy to production with --prod.

We could look into using the Netlify adapter at some point.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calitp_map_utils-2023.8.1.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

calitp_map_utils-2023.8.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file calitp_map_utils-2023.8.1.tar.gz.

File metadata

  • Download URL: calitp_map_utils-2023.8.1.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Darwin/21.4.0

File hashes

Hashes for calitp_map_utils-2023.8.1.tar.gz
Algorithm Hash digest
SHA256 49e3c97ed77f552050b1ffc7bab678b2be5d2902b0c764d1b59bb2a2e3730859
MD5 e5f22301a8e5d0078359e7adff350584
BLAKE2b-256 e5b73ad3e97d02b450557eed99da3cf837ef393f88bcfafca00aeff0c631afc5

See more details on using hashes here.

File details

Details for the file calitp_map_utils-2023.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for calitp_map_utils-2023.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c5b4f46cf82e47329282f6589894b7d5a24b1acb11dcfe9dc5805147e6806e4c
MD5 08f99d9bc85cc151ad76ede839fc4508
BLAKE2b-256 395caa090a6eb2543a702d7dcf5f85c673ead3b36f406f70888acee827952eb2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page