Introduction
感謝您使用 台灣圖霸 「尊爵版」: 最適合房仲業不動產物件的生活機能、嫌惡設施 API!
台灣圖霸 尊爵版房仲業不動產物件 API 主要分成兩個部分:(1) 生活機能,與 (2) 嫌惡設施 (以下稱為鄰避設施)。
使用上非常非常簡單 :
- 您可以選擇以呼叫 Web Service API 的形式、透過您習慣的程式工具依據本文件所說明的介面直接呼叫。
或是,如果您是撰寫位於前端瀏覽器的網頁,甚至可以更簡單 :
使用 Map8 官方提供的 Web API Client SDK for Javascript,直接為您將資料轉為 GeoJSON 結構,讓您只要兩三個步驟、輕輕鬆鬆就能把長官交辦的生活機能與嫌惡設施顯示在地圖上。
並且,還具備點擊彈出視窗、地圖平滑移動等效果,讓您輕鬆,長官滿意。
您只要將我們的範例程式貼上,基本上需要您自己動手寫的 code 不用超過三行。
- 範例程式效果如圖 :

這樣就完成了!
恭喜,Congratulations!!! :D
Notation
- 左右鍵符號 (大於、小於符號, 也就是
<>) 所描述的是一個變數 (variable) 的 formal parameter 形式。本文件底下若提及參數部分,使用到此表示法時,請讀者將之代換成實際的內容 (也就是代換為 actual parameter,並且,不留下<>符號)。例如,https://api.map8.zone/find?keyword=<關鍵詞>若實際關鍵詞為 taiwan,則實際呼叫時,應代換為https://api.map8.zone/find?keyword=taiwan。 - 位於 API 欄位內格式的
<參數>,為標準的 URL 之 query string 格式編碼 (i.e.,name=value以 URL%編碼, 並以&連接) - 除非另有指定,否則,地理經緯度座標 (lat 或 latitude 均指經度,lng 或 longitude 均指緯度) 以 WGS84 / EPSG:4326 為地理座標系統
Version
- v1.0_2019-09-19 (the present document)
- 舊版
- (不再支援) (尚無。)
API Index
Map8 Premium 尊爵版
- [Housing] Amenity API
- 搜尋附近的生活機能設施
- [Housing] Nimby API
- 搜尋附近的鄰避設施
尊爵版 [Housing API]
功能 : 搜尋附近的生活機能或鄰避設施
搜尋附近的生活機能 (Amenity API)
Syntax
https://api.map8.zone/v2/premium/housing/nearbyAmenity?key=<您的 key>&location=<緯度>,<經度>&radius=<範圍 (km)>&select=<以逗點分隔、正向表列欲選取的類型>&exclude=<以逗點分隔、負向表列欲剔除的類型>
Example : 搜尋以地點為中心之周遭的生活機能設施 (註 : 為減少篇幅,底下搜尋乃搜尋中心點週圍 300 公尺、每種設施類型要求取回 3 筆)
curl -X GET "https://api.map8.zone/v2/premium/housing/nearbyAmenity?location=25.069117%2C121.58732&radius=0.3&limit=3&key=<您的 key>"
{
"html_attribution": [
"台灣圖霸",
"研鼎智能",
"PAPAGO!"
],
"results": [
{
"formatted_address": "台北市內湖區民權東路六段126號",
"geometry": {
"location": {
"lat": 25.068893,
"lng": 121.587462
}
},
"id": "NzYqAQYCRh0DWVxTQQYODEw4GzxseQQHBl8BQQEFURtRAEJFeXMaEg==",
"place_id": "NzYqAQYCRh0DWVxTQQYODEw4GzxseQQHBl8BQQEFURtRAEJFeXMaEg==",
"name": "名嘉牙醫診所",
"tel": "02-27919028",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "診所",
"kind": "牙醫",
"distance": 0.029
},
{
"formatted_address": "台北市內湖區民權東路六段136巷4號",
"geometry": {
"location": {
"lat": 25.068663,
"lng": 121.587693
}
},
"id": "NzYqAQYHQRgLXlNTGV5UVg4SAURVYiNcTy5jWnVzJD8uLxQGc0sSEg==",
"place_id": "NzYqAQYHQRgLXlNTGV5UVg4SAURVYiNcTy5jWnVzJD8uLxQGc0sSEg==",
"name": "維仁診所",
"tel": "02-27923829",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "診所",
"kind": "其他診所",
"distance": 0.063
},
{
"formatted_address": "台北市內湖區民權東路六段102號1樓",
"geometry": {
"location": {
"lat": 25.068824,
"lng": 121.58654
}
},
"id": "NzYqAQYCRh0DWVlTQRxgBTFLSz1ufAAAAycDRUpdNRwBCzIAB2pBEg==",
"place_id": "NzYqAQYCRh0DWVlTQRxgBTFLSz1ufAAAAycDRUpdNRwBCzIAB2pBEg==",
"name": "光美牙醫診所",
"tel": "02-27901788",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "診所",
"kind": "牙醫",
"distance": 0.085
},
{
"formatted_address": "台北市內湖區民權東路六段69號",
"geometry": {
"location": {
"lat": 25.069215,
"lng": 121.587593
}
},
"id": "NzYqAQYCRh4HXV5TFDl7K1AdFkRXBRN4BgsFWl1SXxgVAR10AkACEg==",
"place_id": "NzYqAQYCRh4HXV5TFDl7K1AdFkRXBRN4BgsFWl1SXxgVAR10AkACEg==",
"name": "萊爾富便利商店北市民東店",
"tel": "02-27931697",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "萊爾富便利商店",
"branch": "北市民東店",
"cat": "便利商店",
"kind": "便利商店",
"distance": 0.03
},
{
"formatted_address": "台北市內湖區民權東路六段90巷1號",
"geometry": {
"location": {
"lat": 25.068799,
"lng": 121.586104
}
},
"id": "NzYqAQYCRh0LVllTNFl6TDUDTQAARg15Fg1OfU91HgMBTDJoRFs8Eg==",
"place_id": "NzYqAQYCRh0LVllTNFl6TDUDTQAARg15Fg1OfU91HgMBTDJoRFs8Eg==",
"name": "全家便利商店三民店",
"tel": "02-77230365",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "全家便利商店",
"branch": "三民店",
"cat": "便利商店",
"kind": "便利商店",
"distance": 0.127
},
{
"formatted_address": "台北市內湖區民權東路六段120巷7弄8號",
"geometry": {
"location": {
"lat": 25.067709,
"lng": 121.587595
}
},
"id": "NzYqAQYCRhwDX1lTIS5CHiIIKzYJQxp0JjB8fl4bE1ZUTQN7fWI8Eg==",
"place_id": "NzYqAQYCRhwDX1lTIS5CHiIIKzYJQxp0JjB8fl4bE1ZUTQN7fWI8Eg==",
"name": "7-ELEVEN欣福門市",
"tel": "02-27916033",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "7-ELEVEN",
"branch": "欣福門市",
"cat": "便利商店",
"kind": "便利商店",
"distance": 0.159
},
{
"formatted_address": "台北市內湖區民權東路六段83號",
"geometry": {
"location": {
"lat": 25.069279,
"lng": 121.58797
}
},
"id": "NzYqAQYCRh4HXFxTQg8PFQ4yUiVYBDpdPAhEAXRHVU8CUkJ3cF9NEg==",
"place_id": "NzYqAQYCRh4HXFxTQg8PFQ4yUiVYBDpdPAhEAXRHVU8CUkJ3cF9NEg==",
"name": "中華郵政內湖郵局",
"tel": "02-27901070",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "中華郵政",
"branch": "內湖郵局",
"cat": "郵局",
"kind": "郵局",
"distance": 0.068
},
{
"formatted_address": "台北市內湖區民權東路六段120巷3弄1號對面",
"geometry": {
"location": {
"lat": 25.068301,
"lng": 121.587072
}
},
"id": "NzYqAQYARh0CW1lTLy1iBFdLOjASDhxaFA9PeHlsJCEKPh4BAH5BEg==",
"place_id": "NzYqAQYARh0CW1lTLy1iBFdLOjASDhxaFA9PeHlsJCEKPh4BAH5BEg==",
"name": "湖元公園",
"tel": "",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "公園",
"kind": "一般公園及社區公園",
"distance": 0.094
},
{
"formatted_address": "",
"geometry": {
"location": {
"lat": 25.06916,
"lng": 121.588318
}
},
"id": "NzYqAgYCRRYLXlpTJAlQLFBPPztQWRtRDVoZRWJbJEgeHUwGHVUWEg==",
"place_id": "NzYqAgYCRRYLXlpTJAlQLFBPPztQWRtRDVoZRWJbJEgeHUwGHVUWEg==",
"name": "內湖行政大樓",
"tel": "",
"city": " ",
"town": " ",
"type": "地點",
"chain": " ",
"branch": "",
"cat": "公車站",
"kind": "",
"distance": 0.101
},
{
"formatted_address": "",
"geometry": {
"location": {
"lat": 25.068935,
"lng": 121.588921
}
},
"id": "NzYqAgYCRRYLWFJTMh5MDxFSGERuW1tqJgF6VHRQKQxVVjNzb1saEg==",
"place_id": "NzYqAgYCRRYLWFJTMh5MDxFSGERuW1tqJgF6VHRQKQxVVjNzb1saEg==",
"name": "內湖行政大樓",
"tel": "",
"city": " ",
"town": " ",
"type": "地點",
"chain": " ",
"branch": "",
"cat": "公車站",
"kind": "",
"distance": 0.163
},
{
"formatted_address": "台北市內湖區民權東路六段45號",
"geometry": {
"location": {
"lat": 25.069168,
"lng": 121.586274
}
},
"id": "NzYqAQYCRh0FXV9TJwMACz5SGxF6AAkAPBtgaEJ3FiMfSyxqUQFNEg==",
"place_id": "NzYqAQYCRh0FXV9TJwMACz5SGxF6AAkAPBtgaEJ3FiMfSyxqUQFNEg==",
"name": "三民國中",
"tel": "02-27924772",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "國中",
"kind": "國中",
"distance": 0.106
},
{
"formatted_address": "台北市內湖區民權東路六段138號",
"geometry": {
"location": {
"lat": 25.068833,
"lng": 121.588721
}
},
"id": "NzYqAQYCRh0AWFpTJiUZJgI3HSNyQQBRRgNifghuAgsIMkBWQAs8Eg==",
"place_id": "NzYqAQYCRh0AWFpTJiUZJgI3HSNyQQBRRgNifghuAgsIMkBWQAs8Eg==",
"name": "台北市內湖區新湖國民小學附設幼兒園",
"tel": "02-27963721#130",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "幼兒園",
"kind": "幼兒園",
"distance": 0.145
},
{
"formatted_address": "台北市內湖區成功路二段312巷46號1樓",
"geometry": {
"location": {
"lat": 25.067128,
"lng": 121.58839
}
},
"id": "NzYqAQYCRh0AX1pTNitOVSZMCCUNWwdBGl5EeE1zPgMyDFpEZgM0Eg==",
"place_id": "NzYqAQYCRh0AX1pTNitOVSZMCCUNWwdBGl5EeE1zPgMyDFpEZgM0Eg==",
"name": "台北市私立幼新幼兒園",
"tel": "02-27916362",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "幼兒園",
"kind": "幼兒園",
"distance": 0.246
},
{
"formatted_address": "台北市內湖區成功路二段426巷13號1樓",
"geometry": {
"location": {
"lat": 25.071133,
"lng": 121.589111
}
},
"id": "NzYqAQYHQxYGWF5TJB1OSBcDNhldAi4BMAV6VXwALStUPh54enA8Eg==",
"place_id": "NzYqAQYHQxYGWF5TJB1OSBcDNhldAi4BMAV6VXwALStUPh54enA8Eg==",
"name": "台北市私立興南幼兒園",
"tel": "02-27923929",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "幼兒園",
"kind": "幼兒園",
"distance": 0.288
},
{
"formatted_address": "台北市內湖區湖興里民權東路六段138號",
"geometry": {
"location": {
"lat": 25.068833,
"lng": 121.588721
}
},
"id": "NzYqAQYCRh0GVlpTACJMMR06HVxdAS1AORt1X24DTEwKTwAbZFdNEg==",
"place_id": "NzYqAQYCRh0GVlpTACJMMR06HVxdAS1AORt1X24DTEwKTwAbZFdNEg==",
"name": "市立新湖國小",
"tel": "02-27963721",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "國小",
"kind": "國小",
"distance": 0.145
},
{
"formatted_address": "台北市內湖區民權東路六段99號",
"geometry": {
"location": {
"lat": 25.069226,
"lng": 121.588917
}
},
"id": "NzYqAQYHQRgLX1hTHQxBPwtLPDBIXBpaQw0AQkt2CTomEjBlWVY0Eg==",
"place_id": "NzYqAQYHQRgLX1hTHQxBPwtLPDBIXBpaQw0AQkt2CTomEjBlWVY0Eg==",
"name": "臺北市立聯合醫院附設內湖門診部",
"tel": "02-27908387",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "醫院",
"kind": "區域醫院及教學醫院",
"distance": 0.161
},
{
"formatted_address": "台北市內湖區民權東路六段90巷18號1樓",
"geometry": {
"location": {
"lat": 25.067897,
"lng": 121.585862
}
},
"id": "NzYqAQYCRh0KWVpTJSJSPzEeSTR4ZQNUNQRZGlJbPSMAED1+YAcsEg==",
"place_id": "NzYqAQYCRh0KWVpTJSJSPzEeSTR4ZQNUNQRZGlJbPSMAED1+YAcsEg==",
"name": "全聯福利中心內湖民權店",
"tel": "02-27916706",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "全聯福利中心",
"branch": "內湖民權店",
"cat": "超級市場",
"kind": "超級市場",
"distance": 0.2
},
{
"formatted_address": "台北市內湖區成功路二段320巷19號",
"geometry": {
"location": {
"lat": 25.067642,
"lng": 121.589912
}
},
"id": "NzYqAQYCRh4AWVhTPVhdIlA7Tz5YXlJ2Pw1DXHJEITcQTBoIQmoSEg==",
"place_id": "NzYqAQYCRh4AWVhTPVhdIlA7Tz5YXlJ2Pw1DXHJEITcQTBoIQmoSEg==",
"name": "頂好Wellcome超市湖興店",
"tel": "02-27960902#3",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "頂好Wellcome超市",
"branch": "湖興店",
"cat": "超級市場",
"kind": "超級市場",
"distance": 0.308
},
{
"formatted_address": "台北市內湖區民權東路六段99號B1",
"geometry": {
"location": {
"lat": 25.069228,
"lng": 121.589345
}
},
"id": "NzYqAQYCRh0LXF1THCRzIC4YLwQMHQZRQzpHXVxnFigoKiMfb0EGEg==",
"place_id": "NzYqAQYCRh0LXF1THCRzIC4YLwQMHQZRQzpHXVxnFigoKiMfb0EGEg==",
"name": "台北市內湖區行政中心停車場",
"tel": "",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "停車場",
"kind": "一般停車場",
"distance": 0.204
}
],
"status": "OK"
}
Example : 手動指定所僅選取之特定類型
curl -X GET "https://api.map8.zone/v2/premium/housing/nearbyAmenity?location=23.9138,120.685231&select=傳統市場,一般醫院及地方醫院,區域醫院及教學醫院,便利商店&radius=0.5&limit=3&key=<您的 key>"
{
"html_attribution": [
"台灣圖霸",
"研鼎智能",
"PAPAGO!"
],
"results": [
{
"formatted_address": "南投縣南投市復興路478號",
"geometry": {
"location": {
"lat": 23.9138,
"lng": 120.685231
}
},
"id": "NzYqAQYCRR4LXVJTBB1dU187NwBgBiJZQiR6CA9gSAoiPgN5RlcsEg==",
"place_id": "NzYqAQYCRR4LXVJTBB1dU187NwBgBiJZQiR6CA9gSAoiPgN5RlcsEg==",
"name": "衛生福利部南投醫院",
"tel": "049-2231150",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "醫院",
"kind": "一般醫院及地方醫院",
"distance": 0
},
{
"formatted_address": "南投縣南投市復興路478號",
"geometry": {
"location": {
"lat": 23.914094,
"lng": 120.685294
}
},
"id": "NzYqAQYERx0GW1JTJSh1VQgpLE9hcx1cNQ8PXFtHAww1LEVEcQAaEg==",
"place_id": "NzYqAQYERx0GW1JTJSh1VQgpLE9hcx1cNQ8PXFtHAww1LEVEcQAaEg==",
"name": "全家便利商店南投署醫店",
"tel": "049-2240220",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "全家便利商店",
"branch": "南投署醫店",
"cat": "便利商店",
"kind": "便利商店",
"distance": 0.033
},
{
"formatted_address": "南投縣南投市復興路461號1樓",
"geometry": {
"location": {
"lat": 23.913268,
"lng": 120.684145
}
},
"id": "NzYqAQYCRR0DX1NTRz4BKilIHQMSAgYbGzlESHd8IC8WO0Z3WgYGEg==",
"place_id": "NzYqAQYCRR0DX1NTRz4BKilIHQMSAgYbGzlESHd8IC8WO0Z3WgYGEg==",
"name": "OK便利商店南投復興店",
"tel": "049-6003603",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "OK便利商店",
"branch": "南投復興店",
"cat": "便利商店",
"kind": "便利商店",
"distance": 0.125
},
{
"formatted_address": "南投縣南投市復興路342號",
"geometry": {
"location": {
"lat": 23.911088,
"lng": 120.685694
}
},
"id": "NzYqAQYARRsHXV1TOCJwKkw1CgdYRwAIWF9jQHlNA08KGCcJYV1NEg==",
"place_id": "NzYqAQYARRsHXV1TOCJwKkw1CgdYRwAIWF9jQHlNA08KGCcJYV1NEg==",
"name": "全家便利商店南投康金店",
"tel": "049-2247360",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "全家便利商店",
"branch": "南投康金店",
"cat": "便利商店",
"kind": "便利商店",
"distance": 0.305
},
{
"formatted_address": "南投縣南投市民權街",
"geometry": {
"location": {
"lat": 23.910224,
"lng": 120.688426
}
},
"id": "NzYqAQYERhcKVlhTJBB6ED4vHkFyTlxzIwdeV1R+Mx8DNxgCWwo4Eg==",
"place_id": "NzYqAQYERhcKVlhTJBB6ED4vHkFyTlxzIwdeV1R+Mx8DNxgCWwo4Eg==",
"name": "南投市南陽臨時攤販集中場",
"tel": "",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "傳統市場",
"kind": "公有市場",
"distance": 0.513
}
],
"status": "OK"
}
給定座標,搜尋中心點週遭之生活機能設施
- API :
https://api.map8.zone/v2/premium/housing/nearbyAmenity?<參數>
- Synopsis
- <參數>
- key
- 必要參數,請帶進您的 key
- location
- 必要參數,要求系統依據給定的地理座標為搜尋中心點。格式為
<緯度>,<經度>,分別為緯度與經度
- 必要參數,要求系統依據給定的地理座標為搜尋中心點。格式為
- radius
- 選擇性參數,指定以上述
location為中心,以本參數radius指定方圓半徑之距離作為搜索範圍 (最大為 2 公里)。若未給,則由台灣圖霸系統自動智慧判斷
- 選擇性參數,指定以上述
- limit
- 選擇性參數,指定每種設施類型 (依據 生活機能相關之設施類型 -- 參見底下
Response內資料結構的說明) 所欲取得的資料筆數。最多為每種類型要求取回 30 筆。
- 選擇性參數,指定每種設施類型 (依據 生活機能相關之設施類型 -- 參見底下
- select
- 選擇性參數,以逗點分隔,正向表列所欲手動指定選取的類型 (參見 生活機能相關之設施類型)
- exclude
- 選擇性參數,以逗點分隔,負向表列所欲手動指定剔除的類型 (參見 生活機能相關之設施類型)
- postcode
- 選擇性參數 : 是否需要回傳三碼郵遞區號 (
true/false; 預設為false)。範例同 Find Place API 之範例
- 選擇性參數 : 是否需要回傳三碼郵遞區號 (
- formatted_address_embed_postcode
- 若上述
postcode參數有被指定,則指定此參數以將三碼郵遞區號直接內嵌於 response 之formatted_address欄位內 (否則,三碼郵遞區號將另以postcode欄位回傳)。範例同 Find Place API 之範例
- 若上述
- key
- <參數>
Response
Status code : 200 OK
- 表示成功完成您的 request
Response Message Body
- type: application/json
{ "html_attributions" : [ // 您必須向使用者表彰之本 API 所屬的圖資版權資訊 "台灣圖霸", "研鼎智能", "PAPAGO!" ], "results" : [ // `搜尋結果` 陣列 { "formatted_address" : <String>, // 地址 (經整理、格式化過的) "geometry" : { "location" : { "lat" : <Number>, // 緯度 "lng" : <Number> // 經度 }, }, "id" : <String>, // 此地點於台灣圖霸系統內的地點 ID "place_id" : <String>, // 此地點於台灣圖霸系統內的地點 ID "name" : <String>, // 本筆資料的名稱 (地名、道路名、地點名) (例如 "臺北市立聯合醫院附設內湖門診部") "tel" : <String>, // 本筆資料的電話號碼 (例如 "02-87921567") "city" : <String>, // 本筆資料所屬的城市 (例如 "台北市") "town" : <String>, // 本筆資料所屬的行政區 (例如 "內湖區") "type" : <String>, // 本筆資料的類型,可為 : "地點", "地址", 或 "道路" "chain" : <String>, // 本筆資料若屬於某連鎖機構, 則此欄位為該機構名稱 (例如 "中華郵政") "branch" : <String>, // 本筆資料若屬於某連鎖機構, 則此欄位為該分店名稱 (例如 "內湖郵局") "cat" : <String>, // 本筆資料於台灣圖霸系統內所歸屬的地點類型 (例如 "醫院") "kind" : <String>, // 本筆資料於台灣圖霸系統內所歸屬的地點類型 (例如 "區域醫院及教學醫院") "distance" : <Number>, // 本筆資料與輸入的中心點座標間的直線距離, 單位為 km }, ... (more results) ... ], "status" : <String> // Status Code }- 上述每一筆搜尋結果內的各欄位, 若無值, 仍一律回傳, 但帶空值
- results 陣列帶回本次搜尋的查詢結果。本 API 的查詢,最多一次回應 20 筆資料
Status code : 400 Bad Request
- 表示您的 request 系統偵測到有錯誤而無法完成您的要求。通常是給入的參數多了或少了,或是格式有錯誤,或必要參數卻沒給,等等
Response Message Body
- Content-type: application/json
{ "status" : <String> // Status Code }
參見 HTTP Status Code 一節說明本 API 回傳值之一般通則
參見 "status" 欄位 一節說明 "status" 欄位的一般性意義
搜尋附近的鄰避設施 (Nimby API)
Syntax
https://api.map8.zone/v2/premium/housing/nearbyNimby?key=<您的 key>&location=<緯度>,<經度>&radius=<範圍 (km)>&limit=<每種類型的筆數>&select=<以逗點分隔、正向表列欲選取的類型>&exclude=<以逗點分隔、負向表列欲剔除的類型>
Example : 搜尋以地點為中心之周遭的生活機能設施 (註 : 為減少篇幅,底下搜尋乃搜尋中心點週遭 2 公里、每種設施類型要求取回 3 筆)
curl -X GET "https://api.map8.zone/v2/premium/housing/nearbyNimby?location=25.069117%2C121.58732&radius=2&limit=3&key=<您的 key>"
{
"html_attribution": [
"台灣圖霸",
"研鼎智能",
"PAPAGO!"
],
"results": [
{
"formatted_address": "台北市內湖區民權東路六段136巷30號2樓",
"geometry": {
"location": {
"lat": 25.067872,
"lng": 121.587665
}
},
"id": "NzYqAQYHRxcCXFNTJgV7PjMwSBEKRSAHMFtvAHNYBA0xAD5HAFcsEg==",
"place_id": "NzYqAQYHRxcCXFNTJgV7PjMwSBEKRSAHMFtvAHNYBA0xAD5HAFcsEg==",
"name": "玉秀清潔工程有限公司",
"tel": "02-26924398",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "公眾服務",
"kind": "廢棄物回收",
"distance": 0.143
},
{
"formatted_address": "台北市內湖區瑞光路8之1號1樓",
"geometry": {
"location": {
"lat": 25.069522,
"lng": 121.583329
}
},
"id": "NzYqAQYBQhkBV11TIzJPPQBKFx18T1lAH1gFdkB8D04NHkNDBVw0Eg==",
"place_id": "NzYqAQYBQhkBV11TIzJPPQBKFx18T1lAH1gFdkB8D04NHkNDBVw0Eg==",
"name": "興社工業股份有限公司",
"tel": "02-87929881",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "公司行號",
"kind": "工業",
"distance": 0.404
},
{
"formatted_address": "台北市內湖區民權東路六段123巷34弄28號2樓之1",
"geometry": {
"location": {
"lat": 25.070288,
"lng": 121.591829
}
},
"id": "NzYqAQYEQh0KV1hTWCNTJQRJAA5SWAZSHS5geXt9HgkuGD9EbAAWEg==",
"place_id": "NzYqAQYEQh0KV1hTWCNTJQRJAA5SWAZSHS5geXt9HgkuGD9EbAAWEg==",
"name": "龍巖愛玲營業處",
"tel": "02-87922625",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "龍巖",
"branch": "愛玲營業處",
"cat": "公司行號",
"kind": "生命禮儀業",
"distance": 0.472
},
{
"formatted_address": "台北市內湖區陽光街92巷7弄13號1樓",
"geometry": {
"location": {
"lat": 25.075427,
"lng": 121.584404
}
},
"id": "NzYqAQYHQxgGW1tTPiNnLT4NFkYLewxeOQ5ifHRzLxEpExldGVsWEg==",
"place_id": "NzYqAQYHQxgGW1tTPiNnLT4NFkYLewxeOQ5ifHRzLxEpExldGVsWEg==",
"name": "通往天國的階梯",
"tel": "02-26582003",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "墓園",
"kind": "靈骨塔",
"distance": 0.761
},
{
"formatted_address": "",
"geometry": {
"location": {
"lat": 25.062376,
"lng": 121.605834
}
},
"id": "NzYqAQYCRh0KWl5TJB1MFREyOjQNUwtxRVtQSW4MLAEgKAJGGWRBEg==",
"place_id": "NzYqAQYCRh0KWl5TJB1MFREyOjQNUwtxRVtQSW4MLAEgKAJGGWRBEg==",
"name": "內湖第七公墓",
"tel": "",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "墓園",
"kind": "墓園",
"distance": 2.01
},
{
"formatted_address": "台北市內湖區金龍路47巷底",
"geometry": {
"location": {
"lat": 25.086404,
"lng": 121.594347
}
},
"id": "NzYqAQYCRh4CV1pTEQljTBZKIQFYUR8DQwNiGgh8Ik4oLSZnfn4kEg==",
"place_id": "NzYqAQYCRh4CV1pTEQljTBZKIQFYUR8DQwNiGgh8Ik4oLSZnfn4kEg==",
"name": "警察紀念園(警察公墓)",
"tel": "",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "墓園",
"kind": "墓園",
"distance": 2.048
},
{
"formatted_address": "台北市內湖區內湖路一段737巷",
"geometry": {
"location": {
"lat": 25.078978,
"lng": 121.578314
}
},
"id": "NzYqAQYGTRkBV11TIV9/EjBACA1+AQl1QBJ4W15RJi8yHB14Zh00Eg==",
"place_id": "NzYqAQYGTRkBV11TIV9/EjBACA1+AQl1QBJ4W15RJi8yHB14Zh00Eg==",
"name": "737夜市",
"tel": "",
"city": "台北市",
"town": "內湖區",
"type": "地點",
"chain": "",
"branch": "",
"cat": "夜市",
"kind": "夜市",
"distance": 1.423
}
],
"status": "OK"
}
Example : 自預設的類型中,手動剔除特定類型來篩選為鄰避設施
curl -X GET "https://api.map8.zone/v2/premium/housing/nearbyNimby?location=23.9138,120.685231&exclude=傳統市場,一般醫院及地方醫院,區域醫院及教學醫院&radius=0.5&limit=3&key=<您的 key>"
{
"html_attribution": [
"台灣圖霸",
"研鼎智能",
"PAPAGO!"
],
"results": [
{
"formatted_address": "南投縣南投市復興路",
"geometry": {
"location": {
"lat": 23.912695,
"lng": 120.68474
}
},
"id": "NzYqAQYGTRgKWltTEAQZHj4fLkRNeB18EDpOdRd+AygjTRdyYUgkEg==",
"place_id": "NzYqAQYGTRgKWltTEAQZHj4fLkRNeB18EDpOdRd+AygjTRdyYUgkEg==",
"name": "慶興宮",
"tel": "",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "寺廟",
"kind": "寺廟",
"distance": 0.133
},
{
"formatted_address": "南投縣南投市南陽路343號之1313樓",
"geometry": {
"location": {
"lat": 23.913188,
"lng": 120.683823
}
},
"id": "NzYqAQYAQh0KV1tTTgMAFhMLAwJWBA95Dlt1cgtbKRUgKyNGZEIsEg==",
"place_id": "NzYqAQYAQh0KV1tTTgMAFhMLAwJWBA95Dlt1cgtbKRUgKyNGZEIsEg==",
"name": "康旺有限公司",
"tel": "049-2248876",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "公司行號",
"kind": "食品業",
"distance": 0.158
},
{
"formatted_address": "南投縣南投市復興路485號",
"geometry": {
"location": {
"lat": 23.914669,
"lng": 120.68378
}
},
"id": "NzYqAQYAQB8BWVhTMhp1FUxKHxl9dCxBIBhXCAxuPi8dDwFcR3hBEg==",
"place_id": "NzYqAQYAQB8BWVhTMhp1FUxKHxl9dCxBIBhXCAxuPi8dDwFcR3hBEg==",
"name": "新豐禮儀社",
"tel": "0928-344146",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "公司行號",
"kind": "生命禮儀業",
"distance": 0.176
},
{
"formatted_address": "南投縣南投市復興路508號",
"geometry": {
"location": {
"lat": 23.915143,
"lng": 120.683892
}
},
"id": "NzYqAQYAQh4KWlhTRFsPEjITSh5BeRMbMAthZXVdXhJTGAZBBVQWEg==",
"place_id": "NzYqAQYAQh4KWlhTRFsPEjITSh5BeRMbMAthZXVdXhJTGAZBBVQWEg==",
"name": "華春營造",
"tel": "049-2203060",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "公司行號",
"kind": "工業",
"distance": 0.202
},
{
"formatted_address": "南投縣南投市玉井街81號",
"geometry": {
"location": {
"lat": 23.91107,
"lng": 120.685861
}
},
"id": "NzYqAQYETR0KVlNTPw5OClA3PT5SWzhyQzx8BlFcF0ksDEZDAFgkEg==",
"place_id": "NzYqAQYETR0KVlNTPw5OClA3PT5SWzhyQzx8BlFcF0ksDEZDAFgkEg==",
"name": "基督教南投浸信宣道會",
"tel": "049-2221209",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "教堂",
"kind": "教堂",
"distance": 0.31
},
{
"formatted_address": "南投縣南投市玉井街81號",
"geometry": {
"location": {
"lat": 23.91107,
"lng": 120.685861
}
},
"id": "NzYqAQYETRgLWFxTFQxiIEg9Pj9tQlxlBSMDXlZjNz0GNxoFHX88Eg==",
"place_id": "NzYqAQYETRgLWFxTFQxiIEg9Pj9tQlxlBSMDXlZjNz0GNxoFHX88Eg==",
"name": "財團法人基督教南投浸信宣道會",
"tel": "049-2221209",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "教堂",
"kind": "教堂",
"distance": 0.31
},
{
"formatted_address": "南投縣南投市彰南路二段258巷",
"geometry": {
"location": {
"lat": 23.913668,
"lng": 120.681932
}
},
"id": "NzYqAQYGTRgKWlhTFVlSAxJKMxp1ZgFlJzlDB3V1AAgwSx5XAwMGEg==",
"place_id": "NzYqAQYGTRgKWlhTFVlSAxJKMxp1ZgFlJzlDB3V1AAgwSx5XAwMGEg==",
"name": "三玄北極殿",
"tel": "",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "寺廟",
"kind": "寺廟",
"distance": 0.336
},
{
"formatted_address": "南投縣南投市彰南路二段184巷4號",
"geometry": {
"location": {
"lat": 23.912137,
"lng": 120.682254
}
},
"id": "NzYqAQYAQh0AXVNTHgVhEy0YCz1AAQ1oE1puchMNLwoXOA8FeAEWEg==",
"place_id": "NzYqAQYAQh0AXVNTHgVhEy0YCz1AAQ1oE1puchMNLwoXOA8FeAEWEg==",
"name": "財團法人南投市教會聚會所",
"tel": "049-2224794",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "教堂",
"kind": "教堂",
"distance": 0.355
},
{
"formatted_address": "南投縣南投市華陽路258號",
"geometry": {
"location": {
"lat": 23.917528,
"lng": 120.684443
}
},
"id": "NzYqAQYERBcAXF1TRxtCJDceUhVedyJcBh5YcwlOEisUOxB6TGMwEg==",
"place_id": "NzYqAQYERBcAXF1TRxtCJDceUhVedyJcBh5YcwlOEisUOxB6TGMwEg==",
"name": "中油加油站新南投交流道站",
"tel": "049-2230256",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "中油加油站",
"branch": "新南投交流道站",
"cat": "加油站",
"kind": "中油加油站",
"distance": 0.422
},
{
"formatted_address": "南投縣南投市三民里彰南路二段71號",
"geometry": {
"location": {
"lat": 23.909837,
"lng": 120.684025
}
},
"id": "NzYqAQYCRR4AW1JTQ0VPFCkjNQJgWVlTPVkEeHVbDxcTKxdTUVokEg==",
"place_id": "NzYqAQYCRR4AW1JTQ0VPFCkjNQJgWVlTPVkEeHVbDxcTKxdTUVokEg==",
"name": "中油加油站南投站",
"tel": "049-2222650",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "中油加油站",
"branch": "南投站",
"cat": "加油站",
"kind": "中油加油站",
"distance": 0.457
},
{
"formatted_address": "南投縣南投市祖祠路近信義街",
"geometry": {
"location": {
"lat": 23.918074,
"lng": 120.685552
}
},
"id": "NzYqAQYGTRgLWFpTBF5TJAsbLkVOZzJYJDpiSUtHLAoFLURWQUoeEg==",
"place_id": "NzYqAQYGTRgLWFpTBF5TJAsbLkVOZzJYJDpiSUtHLAoFLURWQUoeEg==",
"name": "南投市祖祠路夜市",
"tel": "",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "夜市",
"kind": "夜市",
"distance": 0.476
},
{
"formatted_address": "南投縣南投市育樂路158號",
"geometry": {
"location": {
"lat": 23.911357,
"lng": 120.689239
}
},
"id": "NzYqAQYGTRgKXF1TNCVUFCItQB5yZxNiFAwZAWofDA8kTB11V0IwEg==",
"place_id": "NzYqAQYGTRgKXF1TNCVUFCItQB5yZxNiFAwZAWofDA8kTB11V0IwEg==",
"name": "太和宮",
"tel": "",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "",
"branch": "",
"cat": "寺廟",
"kind": "寺廟",
"distance": 0.49
},
{
"formatted_address": "南投縣南投市平和里民族路163號",
"geometry": {
"location": {
"lat": 23.909666,
"lng": 120.689938
}
},
"id": "NzYqAQYCRR4DX1pTIQZSEVUdKD9SYSZ9MAN9Y08CJS4eVkEJVF5BEg==",
"place_id": "NzYqAQYCRR4DX1pTIQZSEVUdKD9SYSZ9MAN9Y08CJS4eVkEJVF5BEg==",
"name": "中油加油站南投民族街站",
"tel": "049-2222741",
"city": "南投縣",
"town": "南投市",
"type": "地點",
"chain": "中油加油站",
"branch": "南投民族街站",
"cat": "加油站",
"kind": "中油加油站",
"distance": 0.664
}
],
"status": "OK"
}
給定座標,搜尋中心點週遭之鄰避設施
- API :
https://api.map8.zone/v2/premium/housing/nearbyNimby?<參數>
- Synopsis
- <參數>
- key
- 必要參數,請帶進您的 key
- location
- 必要參數,要求系統依據給定的地理座標為搜尋中心點。格式為
<緯度>,<經度>,分別為緯度與經度
- 必要參數,要求系統依據給定的地理座標為搜尋中心點。格式為
- radius
- 選擇性參數,指定以上述
location為中心,以本參數radius指定方圓半徑之距離作為搜索範圍 (最大為 2 公里)。若未給,則由台灣圖霸系統自動智慧判斷
- 選擇性參數,指定以上述
- limit
- 選擇性參數,指定每種設施類型 (依據 鄰避設施相關之類型 -- 參見底下
Response內資料結構的說明) 所欲取得的資料筆數。最多為每種類型要求取回 30 筆。
- 選擇性參數,指定每種設施類型 (依據 鄰避設施相關之類型 -- 參見底下
- select
- 選擇性參數,以逗點分隔,正向表列所欲手動指定選取的類型 (參見 鄰避設施相關之設施類型)
- exclude
- 選擇性參數,以逗點分隔,負向表列所欲手動指定剔除的類型 (參見 鄰避設施相關之設施類型)
- postcode
- 選擇性參數 : 是否需要回傳三碼郵遞區號 (
true/false; 預設為false)。範例同 Find Place API 之範例
- 選擇性參數 : 是否需要回傳三碼郵遞區號 (
- formatted_address_embed_postcode
- 若上述
postcode參數有被指定,則指定此參數以將三碼郵遞區號直接內嵌於 response 之formatted_address欄位內 (否則,三碼郵遞區號將另以postcode欄位回傳)。範例同 Find Place API 之範例
- 若上述
- key
- <參數>
Response
Status code : 200 OK
- 表示成功完成您的 request
Response Message Body
- type: application/json
{ "html_attributions" : [ // 您必須向使用者表彰之本 API 所屬的圖資版權資訊 "台灣圖霸", "研鼎智能", "PAPAGO!" ], "results" : [ // `搜尋結果` 陣列 { "formatted_address" : <String>, // 地址 (經整理、格式化過的) "geometry" : { "location" : { "lat" : <Number>, // 緯度 "lng" : <Number> // 經度 }, }, "id" : <String>, // 此地點於台灣圖霸系統內的地點 ID "place_id" : <String>, // 此地點於台灣圖霸系統內的地點 ID "name" : <String>, // 本筆資料的名稱 (地名、道路名、地點名) (例如 "臺北市立聯合醫院附設內湖門診部") "tel" : <String>, // 本筆資料的電話號碼 (例如 "02-87921567") "city" : <String>, // 本筆資料所屬的城市 (例如 "台北市") "town" : <String>, // 本筆資料所屬的行政區 (例如 "內湖區") "type" : <String>, // 本筆資料的類型,可為 : "地點", "地址", 或 "道路" "chain" : <String>, // 本筆資料若屬於某連鎖機構, 則此欄位為該機構名稱 (例如 "中華郵政") "branch" : <String>, // 本筆資料若屬於某連鎖機構, 則此欄位為該分店名稱 (例如 "內湖郵局") "cat" : <String>, // 本筆資料於台灣圖霸系統內所歸屬的地點類型 (例如 "醫院") "kind" : <String>, // 本筆資料於台灣圖霸系統內所歸屬的地點類型 (例如 "區域醫院及教學醫院") "distance" : <Number>, // 本筆資料與輸入的中心點座標間的直線距離, 單位為 km }, ... (more results) ... ], "status" : <String> // Status Code }- 上述每一筆搜尋結果內的各欄位, 若無值, 仍一律回傳, 但帶空值
- results 陣列帶回本次搜尋的查詢結果。本 API 的查詢,最多一次回應 20 筆資料
Status code : 400 Bad Request
- 表示您的 request 系統偵測到有錯誤而無法完成您的要求。通常是給入的參數多了或少了,或是格式有錯誤,或必要參數卻沒給,等等
Response Message Body
- Content-type: application/json
{ "status" : <String> // Status Code }
參見 HTTP Status Code 一節說明本 API 回傳值之一般通則
參見 "status" 欄位 一節說明 "status" 欄位的一般性意義
完整範例 code snippet
- 本範例效果如下圖
- 亦可參見 台灣圖霸官網 > 應用範例 > 學區圖及物件週邊 POI
- 完整範例 code snippet 如下
- icon 的部分 (底下程式中的
iconArray),請替換為您的圖示集。或是到 這裡下載 本範例所使用的圖示集
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>初始化地圖 - Map8 Platform Documentation</title>
<link rel="stylesheet" href="https://api.map8.zone/css/gomp.css?key=YOUR_KEY_HERE" />
<style>
#map {
height: 600px;
width: 100%;
}
/* Popup */
.poiTabContent .feature .gomp-popup-content{
padding-bottom: 10px;
}
.poiTabContent .feature h5{
font-size: 1.25em;
font-weight: bold;
}
.poiTabContent .feature .badge {
background:#00cac3;
border-radius: 3px;
color:#fff;
display: inline-block;
line-height: 1.5em;
margin-left: -1px;
margin-right: .3em;
margin-top: .4em;
padding-left: .3em;
padding-right: .3em;
}
</style>
</head>
<body>
<div id="map" class="poiTabContent"></div>
<script src='https://npmcdn.com/@turf/turf/turf.min.js'></script>
<script type="text/javascript" src="https://api.map8.zone/maps/js/gomp.js?key=YOUR_KEY_HERE"></script>
<script type="text/javascript" src="https://api.map8.zone/maps/js/gomp-web-service-js-client.min.js?key=YOUR_KEY_HERE"></script>
<script type="text/javascript">
gomp.accessToken = 'YOUR_KEY_HERE';
var gompWebServiceJsClient = new GompWebServiceJsClient({key: gomp.accessToken});
var center = {
lat: 25.04624,
lng: 121.52415
};
var boundsRange = {
lat: 0.013,
lng: 0.022
}
var map = new gomp.Map({
container: 'map', // 地圖容器 ID
style: 'https://api.map8.zone/styles/go-life-maps-tw-style-std/style.json', // 地圖樣式檔案位置
maxBounds: [[center.lng - boundsRange.lng, center.lat - boundsRange.lat], [center.lng + boundsRange.lng, center.lat + boundsRange.lat]],
center: [center.lng, center.lat], // 初始中心座標,格式為 [lng, lat]
zoom: 16, // 初始 ZOOM LEVEL; [0-20, 0 為最小 (遠), 20 ;最大 (近)]
minZoom: 6, // 限制地圖可縮放之最小等級, 可省略, [0-19.99]
maxZoom: 19.99, // 限制地圖可縮放之最大等級, 可省略 [0-19.99]
pitch: 0, // 攝影機仰角, 可省略, [0-60]
bearing: 0, // 地圖角度, 可省略, [-180 ~ 180; 0 為正北朝上, 180 為正南朝上]
attributionControl: false,
speedLoad: false,
}).addControl(new gomp.AttributionControl({
compact: false
}));
map.addControl(new gomp.FullscreenControl({container: document.querySelector('.sample')}));
map.addControl(new gomp.NavigationControl());
var radius = 500; // 500 公尺
var colorIndex = {blue: "#2970C0", green: "#4E9A54", gold: "#D28706", red: "#D63030"};
var iconArray = ["airport", "bank", "bus", "edu", "gas", "hospital", "office", "park", "parking", "store", "subway", "temple", "train", "conv", "funeral", "trash", "people", "factory"];
var iconElArray = {};
iconArray.forEach(function(iconName) {
var el = document.createElement("img");
el.src = "icons/" + iconName + ".png";
iconElArray[iconName] = el;
});
var layerAmenityNibmby = {amenity: {}, nimby: {}};
var amenityNibmbyFeatures = {};
for (var layerName in layerAmenityNibmby) {
layerAmenityNibmby[layerName] = {
name: layerName,
sourceID: 'nearby_' + layerName,
styleLayerID: 'nearby_' + layerName + '-style',
};
amenityNibmbyFeatures['nearby_' + layerName] = {};
}
layerAmenityNibmby.amenity.iconImageOpt = [
"case",
["==", ["get", "cat"], "停車場"],
"icon_parking",
[
"any",
["==", ["get", "cat"], "火車站"],
["==", ["get", "cat"], "高鐵站"]
],
"icon_train",
[
"any",
["==", ["get", "cat"], "公車站"],
["==", ["get", "cat"], "快捷巴士"],
["==", ["get", "cat"], "客運站"]
],
"icon_bus",
["==", ["get", "cat"], "機場"],
"icon_airport",
["==", ["get", "cat"], "捷運站"],
"icon_subway",
[
"any",
["==", ["get", "cat"], "國小"],
["==", ["get", "cat"], "幼兒園"],
["==", ["get", "cat"], "國中"],
["==", ["get", "cat"], "高中職校"],
["==", ["get", "cat"], "大專院校"]
],
"icon_edu",
["==", ["get", "cat"], "公園"],
"icon_park",
[
"any",
["==", ["get", "cat"], "郵局"],
["==", ["get", "cat"], "銀行"]
],
"icon_bank",
["==", ["get", "cat"], "便利商店"],
"icon_conv",
[
"any",
["==", ["get", "cat"], "醫院"],
["==", ["get", "cat"], "診所"]
],
"icon_hospital",
[
"any",
["==", ["get", "cat"], "生活量販"],
["==", ["get", "cat"], "超級市場"],
["==", ["get", "cat"], "傳統市場"],
["==", ["get", "cat"], "百貨公司"]
],
"icon_store",
""
];
layerAmenityNibmby.amenity.map8ApiCall = function() {
var self = this; // Note that `this` represents `layerAmenityNibmby.amenity`
gompWebServiceJsClient.nearbyAmenityGeoJson(
{
query: [center.lat, center.lng],
nearbyAmenityRadius: 2, // 2 KM
//nearbyAmenityLimit: 30,
},
function(nearbyDataGeoJson) {
// console.log(nearbyDataGeoJson); // Debug
nearbyDataGeoJson.features.forEach(function(feature) {
amenityNibmbyFeatures.nearby_amenity[feature.properties.id] = feature;
});
map.addSource(
self.sourceID,
{
"type": "geojson",
"data": nearbyDataGeoJson
}
);
map.addLayer({
id: self.styleLayerID,
type: "symbol",
source: self.sourceID,
layout: {
"icon-image": self.iconImageOpt,
"icon-allow-overlap": true
},
paint: {
"icon-opacity": 1
}
});
map.on("mouseenter", self.styleLayerID, function() {
map.getCanvas().style.cursor = "pointer";
});
map.on("mouseleave", self.styleLayerID, function() {
map.getCanvas().style.cursor = "";
});
map.on("click", self.styleLayerID, function(e) {
var feature = e.features[0];
setPopup(feature);
});
}
);
};
layerAmenityNibmby.nimby.iconImageOpt = [
"case",
["==", ["get", "cat"], "寺廟"],
"icon_temple",
[
"any",
["==", ["get", "kind"], "生命禮儀業"],
["==", ["get", "kind"], "殯儀館"],
["==", ["get", "kind"], "墓園"],
["==", ["get", "kind"], "火葬場"],
["==", ["get", "kind"], "靈骨塔"]
],
"icon_funeral",
[
"any",
["==", ["get", "kind"], "垃圾場"],
["==", ["get", "kind"], "垃圾焚化廠"],
["==", ["get", "kind"], "廢棄物回收"],
["==", ["get", "kind"], "污水處理場"]
],
"icon_trash",
[
"any",
[
"all",
["==", ["get", "kind"], "煤業瓦斯"],
["!=", ["get", "cat"], "公眾服務"]
],
["==", ["get", "cat"], "加油站"],
["==", ["get", "kind"], "液化石油氣分裝廠"],
["==", ["get", "kind"], "天然氣"]
],
"icon_gas",
[
"any",
["==", ["get", "kind"], "夜生活"],
["==", ["get", "kind"], "夜市"]
],
"icon_people",
[
"any",
["==", ["get", "kind"], "工業"],
["==", ["get", "kind"], "製造業"],
["==", ["get", "kind"], "發電廠"]
],
"icon_factory",
""
];
layerAmenityNibmby.nimby.map8ApiCall = function() {
var self = this; // Note that `this` represents `layerAmenityNibmby.nimby`
gompWebServiceJsClient.nearbyNimbyGeoJson(
{
query: [center.lat, center.lng],
nearbyNimbyRadius: 2, // 2 KM
//nearbyNimbyLimit: 30,
},
function(nearbyDataGeoJson) {
// console.log(nearbyDataGeoJson); // Debug
nearbyDataGeoJson.features.forEach(function(feature) {
amenityNibmbyFeatures.nearby_nimby[feature.properties.id] = feature;
});
map.addSource(
self.sourceID,
{
"type": "geojson",
"data": nearbyDataGeoJson
}
);
map.addLayer({
id: self.styleLayerID,
type: "symbol",
source: self.sourceID,
layout: {
"icon-image": self.iconImageOpt,
"icon-allow-overlap": true
},
paint: {
"icon-opacity": 1
}
});
map.on("mouseenter", self.styleLayerID, function() {
map.getCanvas().style.cursor = "pointer";
});
map.on("mouseleave", self.styleLayerID, function() {
map.getCanvas().style.cursor = "";
});
map.on("click", self.styleLayerID, function(e) {
var feature = e.features[0];
setPopup(feature);
});
}
);
};
var popup = new gomp.Popup({
anchor: "bottom",
offset: [0, -12],
className: "feature",
closeOnClick: false
});
map.on("load", function() {
new gomp.Marker({
offset: [0, -15]
})
.setLngLat(map.getCenter())
.addTo(map);
for (var iconElArrayKey in iconElArray) {
map.addImage("icon_" + iconElArrayKey, iconElArray[iconElArrayKey]);
}
for (var layerName in layerAmenityNibmby) {
layerAmenityNibmby[layerName].map8ApiCall();
}
// 繪製中心點半徑方圓範圍
var circle = turf.circle(turf.point([center.lng, center.lat]), radius / 1000, {});
map.addLayer({
"id": "circle-fill",
"type": "fill",
"source": {
"type": "geojson",
"data": circle
},
"paint": {
"fill-color": colorIndex["blue"],
"fill-opacity": 0.2
}
});
map.addLayer(
{
id: "circle-text",
type: "symbol",
source: {
type: "geojson",
data: {
type: "FeatureCollection",
features: [
{
type: "Feature",
geometry: {
type: "Point",
coordinates: [center.lng, center.lat]
}
}
]
}
},
layout: {
'text-allow-overlap': true,
'text-field': '半徑 500 公尺範圍',
'text-font': ["Open Sans Regular"],
'text-offset': [0, 1],
'text-size': 15
},
paint: {
'text-color': colorIndex["blue"],
'text-halo-color': '#fff',
'text-halo-width': 2
}
}
);
map.addLayer({
"id": "circle-outline",
"type": "line",
"source": {
"type": "geojson",
"data": circle
},
"paint": {
"line-color": "blue",
"line-opacity": 0.3,
"line-width": 2,
"line-offset": 1
},
"layout": {
}
});
});
function setPopup(feature) {
var distance = gompWebServiceJsClient.getDistanceFromLatLngInKm(center.lat, center.lng, feature.geometry.coordinates[1], feature.geometry.coordinates[0]);
popup
.setLngLat(feature.geometry.coordinates)
.setHTML(
'<h5>' + feature['properties']['name'] + '</h5>' +
// [Jethro 2019-09-91] Port to Map8's Premium / Housing API
((feature["properties"]["formatted_address"].length !== 0) ? '<span class="badge">景點地址</span>' + feature["properties"]["formatted_address"] + '<br />' : '') +
'<span class="badge">直線距離</span>' + distance + ' 公尺<br />'
)
.addTo(map);
popup.id = feature.properties.id;
// 移至 Popup 可見範圍
var dPWidth = popup._container.offsetWidth;
var dPHeight = popup._container.offsetHeight;
var dPX = popup._pos.x;
var dPY = popup._pos.y;
var mapW = map.transform.width;
var mapH = map.transform.height;
var padding = 20;
var panPoint = {
x: 0,
y: 0
};
if (dPX < dPWidth / 2 + padding) {
panPoint.x = dPX - (dPWidth / 2 + padding);
}
if (dPX > mapW - padding - dPWidth / 2) {
panPoint.x = dPX - (mapW - dPWidth / 2 - padding);
}
if (dPY < dPHeight + padding + 53) {
panPoint.y = dPY - (dPHeight + padding + 53);
}
if (dPY > mapH - padding) {
panPoint.y = dPY - (mapH - padding);
}
map.panBy([panPoint.x, panPoint.y]);
}
</script>
</body>
</html>
下載範例程式內的圖示
台灣圖霸感謝您的支持與愛護!
有任何疑問,或是指教,都非常歡迎您找我們詢問。
非常感謝!
https://map8.zone
HTTP Status Code
以上 API,可能回傳的 HTTP status code 如后 :
| Error Code | 意義 |
|---|---|
| 400 | Bad Request -- 表示您的 requset 解析有誤。通常是給入的參數多了或少了,或是格式有錯誤,或必要參數卻沒給,等等 |
| 401 | Unauthorized -- 表示您未給定您的 key,或是您給的 key 並非有效。請跟我們聯絡 |
| 503 | Service Unavailable -- 表示您的 request 已經超出與我們約定的 QoS (服務品質) 等級。通常過一會兒 (QoS 上限解除) 再重發一次即可成功。如果持續發生,請跟我們聯絡 |
"status" 欄位
以上 API,可能回傳之 status 欄位的意義為 :
status 值 |
意義 |
|---|---|
OK |
無發生任何錯誤;該地點被成功偵測,並且至少回傳一則結果 |
ZERO_RESULTS |
表示搜尋雖然完成,但未得到任何有效結果。此狀況譬如可能發生在您對本 API 發出的 request 所給定的中心座標在一個偏遠地區 |
OVER_QUERY_LIMIT |
表示您已經超出您的配額。請跟我們聯絡 |
REQUEST_DENIED |
表示您的 request 無法進行;一般來說是您未給定您的 key,或是您給的 key 並非有效。請跟我們聯絡 |
INVALID_REQUEST |
表示您的 requset 解析有誤。通常是給入的參數多了或少了,或是格式有錯誤,或必要參數卻沒給,等等 |
UNKNOWN_ERROR |
表示是我們的伺服器端的錯誤;再重試一次可能就會成功。如果持續發生此問題,請跟我們聯絡 |
設施類型
生活機能
所屬生活機能的地點類型,如下 :
- 便利商店 (
cat欄位) - 信用合作社 (
cat欄位) - 停車場 (
cat欄位) - 傳統市場 (
cat欄位) - 充電站 (
cat欄位) - 公車站 (
cat欄位) - 加油站 (
cat欄位) - 商圈 (
cat欄位) - 夜市 (
cat欄位) - 快捷巴士 (
cat欄位) - 捷運站 (
cat欄位) - 政府機關 (
cat欄位) - 機場 (
cat欄位) - 消防單位 (
cat欄位) - 火車站 (
cat欄位) - 生活量販 (
cat欄位) - 百貨公司 (
cat欄位) - 衛生所 (
cat欄位) - 診所 (
cat欄位) - 超級市場 (
cat欄位) - 農漁會 (
cat欄位) - 郵局 (
cat欄位) - 銀行 (
cat欄位) - 高鐵站 (
cat欄位) - 一般公園及社區公園 (
kind欄位) - 主題式公園 (
kind欄位) - 國中 (
kind欄位) - 國小 (
kind欄位) - 圖書館 (
kind欄位) - 大專院校 (
kind欄位) - 動物醫院 (
kind欄位) - 幼兒園 (
kind欄位) - 購物街 (
kind欄位) - 警察單位 (
kind欄位) - 一般醫院及地方醫院 (
kind欄位) - 區域醫院及教學醫院 (
kind欄位) - 壘球場 (
kind欄位) - 棒球場 (
kind欄位) - 體育場 (
kind欄位) - 游泳池 (
kind欄位) - 溜冰場 (
kind欄位) - 網球場 (
kind欄位) - 羽球場 (
kind欄位) - 運動中心 (
kind欄位) - 體育館 (
kind欄位) - 高中職校 (
kind欄位)
鄰避設施
所屬鄰避設施的景點類型,為字串,載於 kind 欄位,如下 :
- 傳統市場 (
cat欄位) - 加油站 (
cat欄位) - 商圈 (
cat欄位) - 墓園 (
cat欄位) - 夜市 (
cat欄位) - 寺廟 (
cat欄位) - 工業區 (
cat欄位) - 教堂 (
cat欄位) - 機場 (
cat欄位) - 污水處理場 (
cat欄位) - 消防單位 (
cat欄位) - 工業 (
kind欄位) - 機械加工 (
kind欄位) - 機械零件 (
kind欄位) - 生命禮儀業 (
kind欄位) - 製造業 (
kind欄位) - 鐵工工程 (
kind欄位) - 電機業 (
kind欄位) - 食品業 (
kind欄位) - 垃圾場 (
kind欄位) - 垃圾焚化廠 (
kind欄位) - 天然氣 (
kind欄位) - 廢棄物回收 (
kind欄位) - 液化石油氣分裝廠 (
kind欄位) - 煤業瓦斯 (
kind欄位) - 發電廠 (
kind欄位) - 變電所 (
kind欄位) - 高壓電塔 (
kind欄位) - PUB (
kind欄位) - 夜店 (
kind欄位) - 動物醫院 (
kind欄位) - KTV (
kind欄位) - 遊藝場 (
kind欄位) - 購物街 (
kind欄位) - 一般醫院及地方醫院 (
kind欄位) - 區域醫院及教學醫院 (
kind欄位)
生活機能與鄰避設施均屬的地點類型
考慮到某些類型的地點 (例如醫院、夜市、加油站、機場等等) 究竟是屬於生活機能,抑或是鄰避設施,可能是 case by base,係按應用情境來認定。
因此,這類地點於生活機能 API 與鄰避設施 API 均會出現。
您可以透過 API 的 select 與 exclude 參數,做正向表列的選取,或負向表列的剔除,來自由彈性選用。
- 傳統市場 (
cat欄位) - 加油站 (
cat欄位) - 商圈 (
cat欄位) - 夜市 (
cat欄位) - 消防單位 (
cat欄位) - 購物街 (
kind欄位) - 一般醫院及地方醫院 (
kind欄位) - 區域醫院及教學醫院 (
kind欄位)