顯示具有 taiwan 標籤的文章。 顯示所有文章
顯示具有 taiwan 標籤的文章。 顯示所有文章

wmts/wms maps of taiwan from sinica/nlsc

隨著地圖應用的普及化,開放地理空間協會(OGC, Open Geospatial Consortium)及
開源地理空間基金會(OSGeo, Open Source Geospatial Foundation)相繼製訂很多公開地圖存取標準,例如:
 
  OGC-1999-網路地圖服務 (WMS, Web Map Service) 
  OGC-2004-網路圖徵服務(WFS, Web Feature Service) 
  0SGeo-2006-圖磚服務 (TMS, Tile Map Service) 
  OGC-2010-網路圖磚服務 (WMTS, Web Map Tile Service) 

台灣地區目前提供免費地圖服務的主要有如下兩機構,2019.7.截止地圖列表如後。
可利用JOSMQGIS免費地圖軟體純觀看,及利用OpenLayersLeaflet免費JavaScript套件內嵌於網頁呈現。

A.國土測繪中心提供的台灣WMS地圖清單: (共計46種地圖)
  http://wms.nlsc.gov.tw/wms?SERVICE=WMS&REQUEST=GetCapabilities
           - 6種
           縣市界 (CITY)
           鄉鎮區界 (TOWN)
           村里界 (Village)
           段籍圖 (LANDSECT)
           地政事務所轄區圖 (LandOffice)
           各級學校範圍圖 (SCHOOL)
           - 2種
           1/5000基本地形圖 (B5000)
           1/5000圖幅框 (MB5000)
           - 9種
           坡向圖 (MOI_ASPECT)
           等高線圖(2003-2005) (MOI_CONTOUR)
           等高線圖(2010-2015) (MOI_CONTOUR_2)
           陰影圖 (MOI_HILLSHADE)
           渲染圖 (MOI_SHADERMAP)
           坡度圖-30%坡(2003-2005) (MOI_SLOPEP_GT30)
           坡度圖-30%坡(2010-2015) (MOI_SLOPEP_GT30_2)
           坡度圖-7級(2003-2005) (MOI_SLOPEP_LV7)
           坡度圖-7級(2010-2015) (MOI_SLOPEP_LV7_2)
           - 10種
           國土利用調查成果圖 (LUIMAP)
           國土利用調查-1類農業 (LUIMAP01)
           國土利用調查-2類森林 (LUIMAP02)
           國土利用調查-3類交通 (LUIMAP03)
           國土利用調查-4類水利 (LUIMAP04)
           國土利用調查-5類建築 (LUIMAP05)
           國土利用調查-6類公共 (LUIMAP06)
           國土利用調查-7類遊憩 (LUIMAP07)
           國土利用調查-8類礦鹽 (LUIMAP08)
           國土利用調查-9類其他 (LUIMAP09)
           - 2種
           正射影像圖(通用) (PHOTO2)
           正射影像(混合) (PHOTO_MIX)
           - 17 種
           臺灣通用電子地圖 (EMAP)
           臺灣通用電子地圖(灰階) (EMAP01)
           臺灣通用電子地圖透明 (EMAP2)
           臺灣通用電子地圖(套疊等高線) (EMAP5)
           臺灣通用電子地圖(套疊等高線)opendata, 最大比例尺一萬八千分之一 (EMAP5_OPENDATA)
           臺灣通用電子地圖(不含等高線) (EMAP6)
           臺灣通用電子地圖(不含等高線)opendata, 最大比例尺一萬八千分之一 (EMAP6_OPENDATA)
           taiwane-map(transparent) (EMAP7)
           taiwane-map(en) (EMAP8)
           臺灣通用電子地圖(無鐵公路) (EMAP9)
           臺灣通用電子地圖透明(無門牌) (EMAP12)
           臺灣通用電子地圖(無門牌) (EMAP15)
           臺灣通用電子地圖(不含等高線及門牌) (EMAP16)
           臺灣通用電子地圖(高dpi字) (EMAP96)
           taiwan e-map(new) (EMAP97)
           臺灣通用電子地圖(新) (EMAP98)
           臺灣通用電子地圖(無文字) (EMAPX99)

B.中研院提供的台灣WMTS地圖清單: (共計48種地圖)
  http://gis.sinica.edu.tw/tileserver/wmts
           1897-日治臺灣假製二十萬分一圖-1:200,000 (JM200K_1897)
           1899-日治臺灣全圖-1:400,000 (JM400K_1899)
           1901-日治行政區-廳(1900年代) (Admin_1901a)
           1901-日治行政區-堡里(1900年代) (Admin_1901b)
           1901-日治行政區-街庄(1900年代) (Admin_1901c)
           1904-日治臺灣堡圖(明治版)-1:20,000 (JM20K_1904)
           1905-日治臺灣圖-1:100,000 (JM100K_1905)
           1914-日治官有林野圖(臺東廳) (Map_LSB1_Taitung)
           1914-日治官有林野圖(花蓮港廳) (Map_LSB1_Hualien)
           1916-日治蕃地地形圖-1:50,000 (JM50K_1916)
           1920-日治地形圖(總督府土木局)-1:50,000 (JM50K_1920)
           1921-日治地形圖-1:25,000 (JM25K_1921)
           1921-日治臺灣堡圖(大正版)-1:20,000 (JM20K_1921)
           1924-日治地形圖(陸地測量部)-1:50,000 (JM50K_1924)
           1924-日治地形圖(陸地測量部)-1:50,000 (JM50K_1924_new)
           1930-日治行政區-州廳(1930年代) (Admin_1930a)
           1930-日治行政區-郡市(1930年代) (Admin_1930b)
           1930-日治行政區-街庄(1930年代) (Admin_1930c)
           1932-二十萬分一帝國圖(臺灣部分) (JM200K_1932)
           1934-日治臺灣全圖(第三版)-1:300,000 (JM300K_1934)
           1936-五十萬分一輿地圖(臺灣部分)-1:500,000 (JM500K_1936)
           1939-日治臺灣全圖(第五版)-1:300,000 (JM300K_1939)
           1942-日治二萬五千分之一地形圖(昭和修正版) (JM25K_1942)
           1944-日治地形圖(航照修正版)-1:25,000 (JM25K_1944)
           1944-美軍地形圖-1:50,000 (AM50K_1944)
           1945-美軍繪製臺灣城市地圖 (AMCityPlan_1945)
           1945-美軍航照影像(1945/6/17攝) (Taipei_aerialphoto_1945)
           1956-臺灣土地利用及林型圖 (1956_Landuse)
           1956-臺灣地形圖-1:50,000 (TM50K_1956)
           1966-臺灣省水利工程、水文站及基準點位置圖 (TM50K_1966)
           1987-臺灣地形圖-1:100,000 (TM100K_1987)
           1989-臺灣經建1版地形圖-1:25,000 (TM25K_1989)
           1990-臺灣經建1版地形圖-1:50,000 (TM50K_1990)
           1993-臺灣經建2版地形圖-1:25,000 (TM25K_1993)
           1996-臺灣經建2版地形圖-1:50,000 (TM50K_1996)
           2001-臺灣經建3版地形圖-1:25,000 (TM25K_2001)
           2003-臺灣經建3版地形圖-1:50,000 (TM50K_2003)
           2003-臺灣經建4版地形圖-1:25,000 (TM25K_2003)

steps for setting up an osm-style map server from OsmHackTW

在 GitHub 開源平台上,OsmHackTW 提供許多台灣相關的地圖資源。
其中,openstreetmap-tiles-docker 專案利用docker容器建立本地端開放街圖標準樣式的台灣地圖服務。
以下介紹如何快速建立此服務映像檔及啟動服務的方法:

1.下載映像檔製作環境
  利用瀏覽器連線到網址 https://github.com/sekewei/openstreetmap-tiles-docker
    點選 【Clone or Download / Download ZIP】,將下載的壓縮環境檔解開

  若有安裝 git 開發環境,也可使用下列 git 指令下載製作環境
    git clone https://github.com/sekewei/openstreetmap-tiles-docker.git

2.製作地圖服務映像檔
  進入製作環境的資料夾,利用如下 docker 指令製作地圖服務映像檔
    cd openstreetmap-tiles-docker
    docker build -f ./Dockerfile -t twstd:latest .

3.初始化地圖資料庫
3.1.啟動容器,執行資料庫初始化腳本
    docker run -it -v /docker/osm-postgresql:/var/lib/postgresql --name twstd twstd:latest /bin/bash
    cd /usr/local/sbin/
    ./run initdb
    ./run startdb
    ./run createuser
    ./run createdb

3.2.下載台灣地圖資料,匯入資料庫
    wget -O /data/import.pbf http://download.geofabrik.de/asia/taiwan-latest.osm.pbf
    ./run import

3.3.含圖資存成新版映像檔
    暫時跳離容器終端機可使用 Ctrl-p + Ctrl-q
    docker commit -m full_loaded twstd twstd:latest

4.啟動地圖服務容器
  利用如下指令啟動地圖服務容器
   docker run -it -p 80:80 -v /docker/osm-postgresql:/var/lib/postgresql --name twstd twstd:latest
   cd /usr/local/sbin/
   ./run startservices

5.測試地圖服務
  利用瀏覽器連線到本地主機80號埠測試地圖服務,點選'本地街圖'選項
    http://localhost

6.更新圖資
  利用如下指令來更新台灣區地圖資料
   docker attach twstd
   cd /usr/local/sbin/
   ./run startdb       # 若執行updatemap出現資料庫連線錯誤,須先啟動資料庫
   ./run updatemap
   Ctrl-p + Ctrl-q

註: 
1. 此服務的設計,利用-v參數將容器內地圖資料庫目錄 /var/lib/postgresql 
   連結到主機目錄/docker/osm-postgresql,方便主機獨立維護圖資。

2. 如下兩個台灣地圖服務專案的差異為地圖樣式不同:
     開放街圖標準樣式: https://github.com/sekewei/openstreetmap-tiles-docker
     開放街圖明亮樣式: https://github.com/sekewei/docker-opentileserver

how to build an osm map server for taiwan on docker

最近集眾人智慧的開放街圖(OpenStreetMap)很熱門,以下介紹一個簡便架設台灣區 OSM 地圖伺服器的方法。
前提是需先安裝 docker 容器環境,例如: Windows 10 上安裝 docker for windows 容器軟體。
有了 docker 容器環境之後,取圖資及架網站的步驟如下:

0.主機打開命令列工具,例如: Windows 10 的 powershell 命令列工具。


以下分成手動及自動安裝兩種說明,手動說明方便理解安裝步驟,自動說明方便快速安裝。

A.【手動安裝法】以下利用原始映像檔,手動建立新映像檔taiwan-osmbright:v1

1.主機下載 dmakan/ubuntu-opentileserver:v1 原始映像檔,啟動容器命名 twbright
    > docker pull dmakan/ubuntu-opentileserver:v1
    > docker run -t -i -p 80:80 --name twbright dmakan/ubuntu-opentileserver:v1
    註: -t for terminal, -i for interactive 表示取得容器的終端機互動視窗,可用 Ctrl-p Ctrl-q 退回主機
    註: -p host_port:container:port for port mapping 先主機埠,後容器埠,可將容器埠對應到主機埠,對外提供服務

2.容器修改 opentileserver.sh 批次檔,讓資料庫接受 utf8 文字編碼
    # vi /opentileserver/opentileserver.sh

    原始 if [ $(psql -Upostgres -c "select datname from pg_database" | grep -m 1 -c ${OSM_DB}) -eq 0 ]; then
    之前新增一行 psql -Upostgres -c "DROP DATABASE IF EXISTS ${OSM_DB};"

    原始 psql -Upostgres -c "create database ${OSM_DB} owner=${OSM_USER};"
    修改 psql -Upostgres -c "CREATE DATABASE ${OSM_DB} TEMPLATE template0 ENCODING 'UTF8' OWNER ${OSM_USER};"

    原始 CREATE EXTENSION hstore;
    修改 CREATE EXTENSION IF NOT EXISTS hstore;

    原始 CREATE EXTENSION postgis;
    修改 CREATE EXTENSION IF NOT EXISTS postgis;

    註: 要先刪除原有資料庫,再重新建立一個接受 utf8 統一碼的資料庫
    註: OSM_USER 預設資料庫用戶名為 tile,OSM_DB 預設資料庫名稱為 gis

3.容器執行 opentileserver.sh 批次檔,下載套件及圖資
    # cd /opentileserver/
    # ./opentileserver.sh web bright http://download.geofabrik.de/asia/taiwan-latest.osm.pbf

    註: 紅色州名/國名可替換成任何想提供服務的國家,詳http://download.geofabrik.de/
    註: geofabrik每日更新一次圖資,只要再執行 opentileserver.sh 批次檔,就重新下載最新圖資,覆寫原有資料庫內容

4.容器修改 OSMBright.xml 樣式檔,讓形狀檔路徑正確
   利用串流修改指令sed進行字串取代
    # sed -ie 's/pulated_places/pulated_places_simple/g' /usr/local/share/maps/style/OSMBright/OSMBright.xml

   或者利用編輯器vi進行修改
    # vi /usr/local/share/maps/style/OSMBright/OSMBright.xml

    原始 <Parameter name="file">
          <![CDATA[/usr/local/share/maps/style/osm-bright-master/shp/
                      ne_10m_populated_places/ne_10m_populated_places.shp]]>
        </Parameter>
    修改 <Parameter name="file">
          <![CDATA[/usr/local/share/maps/style/osm-bright-master/shp/
                      ne_10m_populated_places_simple/ne_10m_populated_places_simple.shp]]>
        </Parameter>

5.容器開啟資料庫,網站,圖磚服務
    # service postgresql restart
    # service apache2 restart
    # service renderd restart

6.主機開啟瀏覽器驗證
    http://localhost/openlayers-example.html

7.主機儲存容器內容為新映像檔,供下回使用
    > docker commit twbright taiwan-osmbright:v1   # 新映像檔命名 taiwan-osmbright:v1
    > docker stop twbright     # 關閉容器
    > docker rm twbright    # 刪除容器


8.主機利用新映像檔,開啟容器,仍命名為 twbright,提供地圖服務
    > docker run -i -t -p 80:80 --name twbright taiwan-osmbright:v1
    http://localhost:80/openlayers-example.html



B.【自動安裝法】以下利用Github映像檔製作環境包快速製作新映像檔taiwan-osmbright:v1

1.下載映像檔製作環境包
  利用瀏覽器連線到網址 https://github.com/sekewei/docker-opentileserver
  點選下載映像檔製作環境包 taiwan-osmbright_v1_build.tar.gz

2.製作地圖服務映像檔
  利用如下指令製作地圖服務映像檔,其中,- 表示映像檔製作環境取自導向(<)進來的環境包檔案,
    -f ./Dockerfile 表示製作步驟檔位於映像檔製作環境之路徑
  > docker build -f ./Dockerfile -t taiwan-osmbright:v1 - < taiwan-osmbright_v1_build.tar.gz

3.啟動地圖服務容器
  利用如下指令啟動服務容器,命名twbright,介接到主機80號埠
  > docker run -it -p 80:80 --name twbright taiwan-osmbright:v1
  按Ctrl-p + Ctrl-q跳出容器終端機

4.測試地圖服務
  利用瀏覽器連線到本地主機80號埠測試地圖服務
  http://localhost:80/openlayers-example.html

  註: 如果要修改初始地圖顯示位置為(lon,lat),方法如下:
        # vi /var/www/html/openlayers-example.html
            var toProjection   = new OpenLayers.Projection("EPSG:900913"); // spherical mercator projection
            var fromProjection = new OpenLayers.Projection("EPSG:4326"); // WGS 1984
            var position       = new OpenLayers.LonLat(lon,lat).transform(fromProjection, toProjection);
            var zoom           = 15;
            map.setCenter(position, zoom);

5.更新地圖資料
  利用如下指令連入容器終端機,執行腳本下載圖資,匯入資料庫,重新啟動服務
  > docker attach twbright
  # cd /opentileserver
  # sh ./reload-opentileserver.sh
  按Ctrl-p + Ctrl-q跳出容器終端機



C.【除錯資訊】以下為自動或手動建立新映像檔,啟動容器後的除錯要點:
0.本機進入容器的終端機 > docker attach twbright 

1.圖磚前景啟動 # sudo -u tile renderd -f -c /usr/local/etc/renderd.conf
     可確認字型檔 unifont.ttf 及形狀檔 ne_10m_populated_places_simple.shp 是否載入正確

2.圖磚快取位置 # ls /var/lib/mod_tile/default/
     可確認目錄下是否有.png圖磚產生

3.字型位置必須有unifont統一碼字型
     # ls /usr/share/fonts/truetype/unifont/unifont.ttf

4.資料庫設定檔必須驗證方式為trust才不必輸入密碼,如下:
     /etc/postgresql/9.3/main/pg_hba.conf
     local all all trust

5.資料庫驗證
     # psql -d gis -Utile   # 以用戶 tile 身份連入資料庫 gis
     gis=# \d         # 列出資料表
               List of relations
   Schema |        Name        | Type  |  Owner
  --------+--------------------+-------+----------
   public | geography_columns  | view  | postgres
   public | geometry_columns   | view  | tile
   public | planet_osm_line    | table | tile
   public | planet_osm_nodes   | table | tile
   public | planet_osm_point   | table | tile
   public | planet_osm_polygon | table | tile
   public | planet_osm_rels    | table | tile
   public | planet_osm_roads   | table | tile
   public | planet_osm_ways    | table | tile
   public | raster_columns     | view  | postgres
   public | raster_overviews   | view  | postgres
   public | spatial_ref_sys    | table | tile
  (12 rows)
 
     gis=# \d planet_osm_point  # 列出欄位
  osm_id             | bigint                 |
  access             | text                   |
  addr:housename     | text                   |
  addr:housenumber   | text                   |
  addr:interpolation | text                   |
  admin_level        | text                   |
  aerialway          | text                   |
  aeroway            | text                   |
  amenity            | text                   |
  area               | text                   |
  barrier            | text                   |
  bicycle            | text                   |
  brand              | text                   |
  bridge             | text                   |
  boundary           | text                   |
  building           | text                   |
  .....
  water              | text                   |
  waterway           | text                   |
  wetland            | text                   |
  width              | text                   |
  wood               | text                   |
  z_order            | integer                |
  way                | geometry(Point,900913) |

     gis=# select osm_id, name from planet_osm_point limit 10;  # 取10個點看中文名正確否
     osm_id   |   name
  ------------+-----------
     63252122 |
   1647048653 | 青屿
   1645249987 | 五膽島
   1645249985 | 四膽島
   1645249984 | 三膽島
   1645249983 | 二膽島
   1645249988 | 大膽島
   1645251414 | 獅球
   1645249986 | 大南礁
   1645249989 | 兔嶼

     gis=# select count(*) from planet_osm_point;  # 計算總共資料庫有幾個點
  count
--------
 198300
(1 row)

     gis=# \q         # 離開

Building a Lightweight Streamlit Client for Local Ollama LLM Interaction

Ollama 提供端點串接服務,可由程式管理及使用本地大語言模型(LLM, Large Language Model)。 以下程式碼展示如何以 Streamlit 套件,建立一個輕量級的網頁介面,供呼叫 本地端安裝的 Ollama 大語言模型。 Ollama 預設的服務...

總網頁瀏覽量