實例方法
PlacesService 提供五個地圖搜尋方法:
| 實例方法 | 描述 |
|---|---|
| findPlaceFromQuery | 可根據文字查詢傳回地點,例如地點的名稱或地址。 |
| findPlaceFromPhoneNumber | 可根據電話號碼傳回地點。 |
| textSearch | 可根據搜尋字串傳回附近地點的清單。 |
| getDetails | 可傳回特定地點的詳細資訊。 |
| nearBySearch | 可根據使用者的所在位置,傳回附近地點的清單。 |
findPlaceFromQuery
findPlaceFromQuery(request, callback)
可根據文字查詢傳回地點,例如地點的名稱或地址。
參數
- request
(object):請求參數。 - callback
(function):回調函數,返回第一個參數為查詢到的資料,第二個參數為請求狀態。
| 參數 | 描述 |
|---|---|
request.query (string) | 必填,要搜尋的文字字串,例如「便利商店」或「中正路 100 號」。 |
request.fields (string[]?) | 選填,要回傳的資料欄位。 |
request.locationBias (object?) | 選填,設定搜尋區域的範圍,詳細使用方法 locationBias。 |
範例
const map = await new mapPlus(document.getElementById('map'), {
accessToken: 'get_your_token',
accessKey: 'get_your_key',
style: 'https://kw3dmap.localking.com.tw/openapi/map/kwmap.etxt',
});
const service = new mapPlus.PlacesService(map);
const request = {
query: '便利商店',
fields: ['name', 'opening_hours', 'geometry'],
locationBias: {lat: 37.402105, lng: -122.081974},
};
const callback = (result) => {
console.log(result);
};
service.findPlaceFromQuery(request, callback);
findPlaceFromPhoneNumber
findPlaceFromPhoneNumber(request, callback)
可根據電話號碼傳回地點。
參數
- request
(object):請求參數。 - callback
(function):回調函數,返回第一個參數為查詢到的資料,第二個參數為請求狀態。
| 參數 | 描述 |
|---|---|
request.phoneNumber (string) | 必填,要搜尋的電話號碼。 |
request.fields (string[]?) | 選填,要回傳的資料欄位。 |
request.locationBias (object?) | 選填,設定搜尋區域的範圍,詳細使用方法 locationBias。 |
範例
const map = await new mapPlus(document.getElementById('map'), {
accessToken: 'get_your_token',
accessKey: 'get_your_key',
style: 'https://kw3dmap.localking.com.tw/openapi/map/kwmap.etxt',
});
const service = new mapPlus.PlacesService(map);
const request = {
phoneNumber: '27208889',
fields: ['name', 'opening_hours', 'geometry'],
locationBias: {lat: 37.402105, lng: -122.081974},
};
const callback = (result) => {
console.log(result);
};
service.findPlaceFromPhoneNumber(request, callback);
textSearch
textSearch(request, callback)
可根據搜尋字串傳回附近地點的清單。
參數
- request
(object):請求參數。 - callback
(function):回調函數,返回第一個參數為查詢到的資料,第二個參數為請求狀態。
| 參數 | 描述 |
|---|---|
request.text (string) | 必填,要搜尋的文字。 |
request.location (object?) | 選填,要搜尋的座標。 |
request.radius (number?) | 選填,以座標為中心的半徑範圍(單位:公尺)。 |
request.type (string?) | 選填,要搜尋的地點類型,詳細類型清單 Type List。 |
範例
const map = await new mapPlus(document.getElementById('map'), {
accessToken: 'get_your_token',
accessKey: 'get_your_key',
style: 'https://kw3dmap.localking.com.tw/openapi/map/kwmap.etxt',
});
const service = new mapPlus.PlacesService(map);
const request = {
text: '便利商店',
location: {lat: 37.402105, lng: -122.081974},
radius: 1000,
type: 'convenience_store',
};
const callback = (results) => {
results.forEach((result) => {
console.log(result);
});
};
service.textSearch(request, callback);
getDetails
getDetails(request, callback)
可傳回特定地點的詳細資訊。
參數
- request
(object):請求參數。 - callback
(function):回調函數,返回第一個參數為查詢到的資料,第二個參數為請求狀態。
| 參數 | 描述 |
|---|---|
request.placeId (string) | 必填,要搜尋的地點 ID。 |
request.fields (string[]?) | 選填,要回傳的資料欄位。 |
範例
const map = await new mapPlus(document.getElementById('map'), {
accessToken: 'get_your_token',
accessKey: 'get_your_key',
style: 'https://kw3dmap.localking.com.tw/openapi/map/kwmap.etxt',
});
const service = new mapPlus.PlacesService(map);
const request = {
placeId: 'YLDWVN',
fields: ['name', 'opening_hours', 'geometry'],
};
const callback = (result) => {
console.log(result);
};
service.getDetails(request, callback);
nearBySearch
nearBySearch(request, callback)
可根據使用者的所在位置,傳回附近地點的清單。
參數
- request
(object):請求參數。 - callback
(function):回調函數,返回第一個參數為查詢到的資料,第二個參數為請求狀態。
| 參數 | 描述 |
|---|---|
request.location (string?) | 選填,要搜尋的座標。 |
request.radius (number?) | 選填,以座標為中心的半徑範圍(單位:公尺)。 |
request.keyword (string?) | 選填,要搜尋的文字。 |
request.type (string?) | 選填,要搜尋的地點類型,詳細類型清單 Type List。 |
範例
const map = await new mapPlus(document.getElementById('map'), {
accessToken: 'get_your_token',
accessKey: 'get_your_key',
style: 'https://kw3dmap.localking.com.tw/openapi/map/kwmap.etxt',
});
const service = new mapPlus.PlacesService(map);
const request = {
location: {lat: 37.402105, lng: -122.081974},
radius: 1000,
keyword: '便利商店',
type: 'convenience_store',
};
const callback = (results) => {
results.forEach((result) => {
console.log(result);
});
};
service.nearBySearch(request, callback);