發表文章

目前顯示的是有「gis」標籤的文章

QGIS 縣市分色圖 Null 值處置

圖片
 GIS 的工具越來越多,功能越來越強,可是我只要其中的一、兩項而已,像是常見的縣市分色圖,依照不同的統計值,來分層顯示哪個縣市比較…,例如,用不同的顏色看哪個縣市的人口出生率較高,出生率越低越偏向紅色,出生率越高越偏向藍色。然而,有個縣市沒有資料:NULL 工作環境:   Windows 10   QGIS 3.2     設定 symbology/style Null 又怎樣,Null 不怎樣,就是地圖上一片空白,連縣市的框線都不顯示,而想要的結果是不論如何要把縣市顯示出來,剛才突然想到可以多疊一個只有縣市界的透明填色圖層,但是醬子會和中間色(白色)的區塊混淆,得再設一個和 Graduated 色皆不同的背景色,沒有用過,有興趣的可以自已試試。 簡單地說有 google 到2種方法,一種用 UI 處理,一種用函式處理。 先說說麻瓜的 UI 處理方式: 先用 Graduated 把分色設好,再用 Rule Based 處理例外狀況。 Graduated 分色設定 轉用 Rule Based 方式處理例外值 函式法: case when "Some_Value" IS NULL then 0 else "Some_Value" end 在欄位的地方把 null 值轉成0 這2種方法都可以處理 null 值,聰明如你應該也知道有什麼不同,端看你的喜好了。 收工!      

有趣的3D台北建物

圖片
台北的建物整體來說到底長成什麼樣子了,如果開口,應該很多人會說股溝有 map,加上 股溝餓死 那個壓扁的空照圖,用上再好的眼鏡也看不清楚的解析度,霧裏看花,越看越醜,台灣不比曼哈頓,建物有標的就那幾個,例如:很高,但是很不想看到的101。 總而言之:   1、我想要地圖   2、我想要3D建物的分布   3、實用就好,美術細胞我只剩一顆 好在地球上真的沒有新鮮事,有人已經做過了,話說長這麼大年紀,叫我想個新東西,真是打破頭也沒個所以然,抄一個,好說歹說也可以抄個樣子。 股溝大神問了半天,就 osm(地圖)、openlayers(很多地圖操作)、osmbuilding(3D)、vizicities(3D)。 有人做過就好辦,開始準備原料,先把台北的圖資抓下來(open Data),轉 json 格式,說穿了除了平常在用的地點資料以外,就是要取那個建物的高度 (height) 值,然後再用 osmbuildings (vizi 看起來賣相比較好,但是才疏學淺一直 try 不出來,擱置先~~),導入 mapbox 底圖,再把抓來的圖資餵進去,登登~~,數大便是美 有資斯有圖 可以收工了! 我還是覺得奇怪!?為什麼,有些區塊少了,好像是 google 畫了的建物、網站上有的就跳過去?既有的資料已經花了不少工了,可惜!

Python 安裝模組以安裝 geocoder 為例

犯蠢的故事是這樣開始的,在 FB 上看到 geocoder 可以引用 tgos 模組,這樣一來,如果要查門牌號碼對應的地理資訊,就可以透過這個工具來查找, 只要3行 ,看起來超簡單。 不簡單的就只有那個 But 工作環境︰ Windows 7 pro Python zip(python-3.5.1-embed-amd64.zip)︰ 非 installer 安裝,解到 D:\python     pip python 的套件管理工具 官網說, pip install geocoder 然後呢! 然後它就出現錯誤訊息,長得像下面這樣。 然後只好發信給原作者,非常快,沒想到才幾分鐘作者就回信了,給了我一些建議。 然後我就開始試著看 virtualenv 之類的,有些套件可以裝,但是還是卡在同一個地方,好像是個跨過不去的關卡。     writing top-level names to pip-egg-info\click.egg-info\ top_level.txt     writing manifest file 'pip-egg-info\click.egg-info\ SOURCES.txt'     warning: manifest_maker: standard file '-c' not found     error: [Errno 2] No such file or directory: 'd:\\python\\python35.zip\\ lib2t o3\\Grammar.txt' Command "python setup.py egg_info" failed with error code 1 in C:\Users\someone\AppData\Local\Temp\pip-build-aw8h0tri\click\ 開檔案總管查看,D:\python資料夾下有個 python35.zip 和一個 python 的資料夾,裏面有 lib2to3 ,也有 Grammer.txt ,後來不管三七二十一,python 資料夾直接給它一個分身,就叫 pytho...

如何取得 google map 點位的經緯度

圖片
有2種方法︰ 搜尋之後看連結位置,如果你在 google map 搜尋「中正紀念堂」之後,找到的點位剛好就是你要的,你可以在瀏覽器的連結位置上看到點位的經緯度,如下圖橙色方框所示,格式是︰緯度,經度(台灣緯度約24、經度約120) 或者是你在地圖上找到你的點位,[滑鼠右鍵] > [這是哪裏](下圖箭頭1) > 左方訊息框裏就有經緯度(下圖箭頭2)

使用 Excel 計算2個地點之間的直線距離

如果想知道地圖上2個點的直線距離,通常直覺就上 google map 之類的網路地圖,使用尺規之類的工具(通常圖示是一把尺,拖、拉、放之後,網站就會告訴你這2點之間的距離,But........... 如果沒有網路,知道一大堆點的經度和緯度,想要知道這些點,和另一個指定的點之間的直線距離,應該不太可能會在這個時候才想探就 GIS 的基礎理論,知道其實地球是球形的,再去複習一下高中數學(圓周、三角函數…),以便計算球面上的2個點之間的距離,或是有人會說,用 google map api,寫個小程式,馬上就知道了,還可以知道行經路徑(迷之音:再次提醒你,沒有網路,沒有網路,沒有網路.................);大部份的人應該會說,釣竿留給你,魚直接給我吧........... 知道點位的經緯度(小數格式),恭喜你,打開 Excel 吧,假設你的所在點是經度 121.587753,緯度是 25.286747,把要試算的另一個點的緯度放在 Excel 的 E2 欄位,經度放在 F2 欄位,然後把下面的函式貼到你要求解距離的欄位,你就知道2點之間的距離有多遠了: 如果你是在台灣: E2 = 緯度(約24) F2 = 經度(約120) 函式: =6371 *ACOS( COS( RADIANS( 25.286747 ) ) * COS( RADIANS( E2 ) ) * COS( RADIANS( F2 ) - RADIANS(121.587753 ) ) + SIN( RADIANS( 25.286747 ) ) * SIN( RADIANS(E2 ) ) ) 單位:公里