MapLibre Visualization¶
This notebook demonstrates GeoAgent's visualization capabilities using leafmap's MapLibre backend.
In [ ]:
Copied!
# %pip install geoagent
# %pip install geoagent
Create a Basic Map¶
In [ ]:
Copied!
from leafmap.maplibregl import Map
m = Map(center=[-122.4194, 37.7749], zoom=10)
m
from leafmap.maplibregl import Map
m = Map(center=[-122.4194, 37.7749], zoom=10)
m
Add a COG Layer¶
Load a Cloud-Optimized GeoTIFF directly on the map:
In [ ]:
Copied!
m = Map(center=[-122.4194, 37.7749], zoom=10)
url = (
"https://github.com/opengeos/datasets/releases/download/raster/Libya-2023-07-01.tif"
)
m.add_cog_layer(url, name="Libya Satellite")
m
m = Map(center=[-122.4194, 37.7749], zoom=10)
url = (
"https://github.com/opengeos/datasets/releases/download/raster/Libya-2023-07-01.tif"
)
m.add_cog_layer(url, name="Libya Satellite")
m
Add GeoJSON Data¶
In [ ]:
Copied!
m = Map(center=[-100, 40], zoom=3)
geojson_url = "https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_110m_admin_1_states_provinces_lines.geojson"
m.add_geojson(geojson_url, name="US States")
m
m = Map(center=[-100, 40], zoom=3)
geojson_url = "https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_110m_admin_1_states_provinces_lines.geojson"
m.add_geojson(geojson_url, name="US States")
m
Add PMTiles Layer¶
In [ ]:
Copied!
m = Map(center=[0, 20], zoom=2)
pmtiles_url = "https://pmtiles.io/protomaps(vector)ODbL_firenze.pmtiles"
# m.add_pmtiles(pmtiles_url, name="Firenze")
m
m = Map(center=[0, 20], zoom=2)
pmtiles_url = "https://pmtiles.io/protomaps(vector)ODbL_firenze.pmtiles"
# m.add_pmtiles(pmtiles_url, name="Firenze")
m
STAC Search and Visualization¶
Search for data and display it on a map:
In [ ]:
Copied!
from geoagent.catalogs.registry import CatalogRegistry
reg = CatalogRegistry()
client = reg.get_client("earth_search")
results = client.search(
collections=["sentinel-2-l2a"],
bbox=[-122.5, 37.5, -122.0, 38.0],
datetime="2024-07-01/2024-07-31",
max_items=1,
)
items = list(results.items())
if items:
item = items[0]
print(f"Item: {item.id}")
print(f"Visual asset: {item.assets.get('visual', {})}")
from geoagent.catalogs.registry import CatalogRegistry
reg = CatalogRegistry()
client = reg.get_client("earth_search")
results = client.search(
collections=["sentinel-2-l2a"],
bbox=[-122.5, 37.5, -122.0, 38.0],
datetime="2024-07-01/2024-07-31",
max_items=1,
)
items = list(results.items())
if items:
item = items[0]
print(f"Item: {item.id}")
print(f"Visual asset: {item.assets.get('visual', {})}")
In [ ]:
Copied!
if items and "visual" in item.assets:
m = Map(center=[-122.25, 37.75], zoom=10)
m.add_cog_layer(item.assets["visual"].href, name=item.id)
m
if items and "visual" in item.assets:
m = Map(center=[-122.25, 37.75], zoom=10)
m.add_cog_layer(item.assets["visual"].href, name=item.id)
m