timmy / Leaflet 多地點標記與自訂圖示

0 likes
0 forks
1 files
Last active 1 year ago
此範例使用 Leaflet 在 OpenStreetMap 上顯示多個地點標記,並使用自訂圖示來強調特定位置,如台北 101、中正紀念堂和士林夜市。點擊標記可顯示彈出資訊,並支援地圖點擊事件以顯示座標。
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Leaflet 多個地點範例</title>
5 <meta charset="utf-8" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css" />
8 <style>
9 #map {
10 height: 600px;

timmy / Leaflet 標記與互動地圖

0 likes
0 forks
1 files
Last active 1 year ago
此範例使用 Leaflet 在 OpenStreetMap 上顯示多個標記,並附加彈出視窗說明不同地點的資訊。地圖支援點擊事件,可顯示使用者點擊的座標,適用於地理資訊應用和旅遊地圖開發。
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Leaflet 地圖範例</title>
5 <meta charset="utf-8" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css" />
8 <style>
9 #map {
10 height: 600px;
Last active 1 year ago
這段程式碼實作「策略模式(Strategy Pattern)」,用於計算購物車的總金額,並允許 根據不同的定價策略(如正常價格或折扣價格) 來計算最終價格。
1 from abc import ABC, abstractmethod
2
3 # 策略介面
4 class PricingStrategy(ABC):
5 @abstractmethod
6 def calculate_price(self, price):
7 pass
8
9 # 具體策略類
10 class NormalStrategy(PricingStrategy):
Last active 1 year ago
此範例展示策略模式在 YAML 和 JSON 資料處理中的應用,DataHandlerStrategy 定義通用的讀寫介面,並透過 YamlHandler 和 JsonHandler 來處理不同格式的資料。DataManager 負責管理資料存取,並可動態切換處理策略,提高靈活性與可維護性。
1 import time
2 import yaml
3 import json
4 from abc import ABC, abstractmethod
5 import streamlit as st
6
7 # 策略介面
8 class DataHandlerStrategy(ABC):
9 @abstractmethod
10 def read_data(self, path):

timmy / Streamlit 使用者驗證系統

0 likes
0 forks
1 files
Last active 1 year ago
此應用程式使用 streamlit_authenticator 進行使用者登入、登出及密碼重設,並支援 YAML 和 JSON 兩種格式作為驗證資料存儲。適用於需要帳戶管理的 Streamlit Web 應用,確保只有授權使用者可以存取內容。
1 import json
2 from abc import ABC, abstractmethod
3
4 import streamlit as st
5 import streamlit_authenticator as stauth
6 import yaml
7
8
9 # 策略介面
10 class DataHandlerStrategy(ABC):
Last active 1 year ago
此範例展示如何使用 PyWebIO 及 JavaScript 顯示即時更新的時間。透過 put_html() 方法嵌入 HTML 和 JavaScript,並使用 setInterval() 讓時間每秒更新一次,使 PyWebIO 應用能夠提供更動態的用戶體驗。
1 from pywebio import start_server
2 from pywebio.output import put_html
3 import datetime
4
5 def use_scope_case3():
6 put_html('''
7 <div id="time"></div>
8 <script>
9 function updateTime() {
10 document.getElementById("time").innerText = new Date().toLocaleString();