{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "43ef0082-9552-44e9-82d3-c1e27209d2c5", "metadata": { "lines_to_next_cell": 2, "tags": [] }, "outputs": [], "source": [ "import json\n", "import requests\n", "import random\n", "from ipyleaflet import (\n", " Map,\n", " LayerGroup,\n", " SearchControl,\n", " TileLayer,\n", " FullScreenControl,\n", " ScaleControl,\n", " ZoomControl,\n", " Marker,\n", " SearchControl,\n", " AwesomeIcon,\n", " WidgetControl,\n", " GeoJSON,\n", " Popup,\n", ")\n", "from ipywidgets import IntSlider, ColorPicker, Button, link, HTML, jslink\n", "\n", "m = Map(center=(47, 2), zoom=5, zoom_control=False)\n", "\n", "# create Zoom_control\n", "m.add(ZoomControl(position=\"topleft\"))\n", "# create Scale_Control\n", "m.add(ScaleControl(position=\"bottomleft\"))\n", "# Create Full_Screen_Control\n", "m.add(FullScreenControl())\n", "\n", "\n", "zoom_slider = IntSlider(description=\"Zoom level:\", min=0, max=15, value=7)\n", "jslink((zoom_slider, \"value\"), (m, \"zoom\"))\n", "widget_control1 = WidgetControl(widget=zoom_slider, position=\"topright\")\n", "m.add(widget_control1)\n", "\n", "\n", "# Create a local Tile Layer concerning the irsn map\n", "radon = TileLayer(\n", " url=\"https://cartoradon.irsn.fr/static/r/{z}/{x}/{y}.png\", tms=True, opacity=0.5\n", ")\n", "m.add(radon)\n", "\n", "# Create a function get_data which fetch the datas from the irsn application\n", "def get_data(lng, lat):\n", " r = requests.get(\n", " \"https://cartoradon.irsn.fr/commune.py/communes/lonlat/{};{}\".format(lng, lat)\n", " )\n", " return r.json()\n", "\n", "\n", "def generate_popup(coordinates):\n", " data = get_data(coordinates[1], coordinates[0])\n", " # Display geojson\n", " geometry = data[\"geometry\"]\n", " geojson = GeoJSON(\n", " data=geometry,\n", " style={\"opacity\": 1, \"dashArray\": \"9\", \"fillOpacity\": 0.1, \"weight\": 1},\n", " hover_style={\"color\": \"white\", \"dashArray\": \"0\", \"fillOpacity\": 0.5},\n", " )\n", " m.add(geojson)\n", "\n", " # Create Popup\n", " message1 = HTML()\n", " dict_properties = data[\"properties\"]\n", " get_name = dict_properties.get(\"name\")\n", " get_class = dict_properties.get(\"classr\")\n", " message1.value = \"Ville: {}, Classe : {}\".format(get_name, get_class)\n", " popup = Popup(\n", " location=coordinates,\n", " child=message1,\n", " close_button=True,\n", " auto_close=True,\n", " close_on_escape_key=False,\n", " )\n", " m.add(popup)\n", "\n", "\n", "# take a method on_interation providing Map object to obtain the coordinates\n", "def on_interaction(event, type, coordinates):\n", "\n", " if type == \"click\":\n", " generate_popup(coordinates)\n", "\n", "\n", "m.on_interaction(on_interaction)\n", "\n", "\n", "def on_found(text, location, **kwargs):\n", " generate_popup(location)\n", "\n", "\n", "search = SearchControl(\n", " position=\"topleft\",\n", " url=\"https://cartoradon.irsn.fr/commune.py/communes/search/FR/{s}?\",\n", " zoom=8,\n", " property_name=\"display_name\",\n", ")\n", "search.on_location_found(on_found)\n", "\n", "m.add(search)\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "049eafa5-e939-442a-a24e-cfd69ef3372d", "metadata": {}, "outputs": [], "source": [ "from ipyflex import FlexLayout\n", "w={\"dashboard\": m }\n" ] }, { "cell_type": "code", "execution_count": null, "id": "54d29b4f-682c-4991-8758-1af10ded84cc", "metadata": {}, "outputs": [], "source": [ "a = FlexLayout(w, template='kk.json', editable=False)" ] }, { "cell_type": "code", "execution_count": null, "id": "30b41636-a1fe-45db-8ae9-a14b8bc8f6df", "metadata": {}, "outputs": [], "source": [ "a" ] }, { "cell_type": "code", "execution_count": null, "id": "f01ea9ca-6c51-442b-aeb6-e8d76a120802", "metadata": {}, "outputs": [], "source": [ "slider = IntSlider()" ] }, { "cell_type": "code", "execution_count": null, "id": "68e6ed4f-a38e-4508-a9b7-004d86a6bde2", "metadata": {}, "outputs": [], "source": [ "a.add('hh', slider)" ] }, { "cell_type": "code", "execution_count": null, "id": "3c9cf06f-e32b-4495-a521-6e7395aeeb78", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.5" } }, "nbformat": 4, "nbformat_minor": 5 }