pinpoint-service-api
v1.0.0
Published
คลาสที่ใช้สำหรับเรียกใช้งาน API ของ Pinpoint สำหรับการค้นหาสถานที่
Downloads
6
Maintainers
Readme
🔭 I’m currently working on 409RESTful API
🌱 I’m currently learning Typescript
👨💻 All of my projects are available at https://github.com/ciockie
💬 Ask me about React, ExpressJS, NGINX
📫 How to reach me [email protected]
บริการ API ของ Pinpoint
โครงการนี้เป็นบริการที่ใช้ TypeScript สำหรับการเชื่อมต่อกับ API ของ Pinpoint เพื่อทำการค้นหาตามสถานที่ บริการนี้ออกแบบมาให้ทำงานบนฝั่งเซิร์ฟเวอร์และให้วิธีการในการดึงข้อมูลคำแนะนำอัตโนมัติ ข้อมูลรายละเอียดสถานที่ และข้อมูลหลายสถานที่ในคราวเดียว
สารบัญ
คุณสมบัติ
- การค้นหาอัตโนมัติ (Autocomplete): ดึงข้อมูลคำแนะนำที่เกี่ยวข้องสูงสุด 10 รายการสำหรับคำค้นที่กำหนด เช่น ที่อยู่ ชื่อสถานที่ หรือพิกัดในประเทศไทย
- รายละเอียดสถานที่ (Detials): รับข้อมูลรายละเอียดทั้งหมดของสถานที่ รวมถึงที่อยู่ ชื่อ และพิกัด โดยใช้ Location ID จากผลการค้นหาอัตโนมัติ
- รายละเอียดหลายสถานที่ (Batch): ดึงข้อมูลรายละเอียดสำหรับหลายสถานที่พร้อมกัน (สูงสุด 50 สถานที่)
การเริ่มต้นใช้งาน
Installation
npm install pinpoint-service-api
รับ API Token ของคุณ
ในการใช้ API ของ Pinpoint คุณจะต้องได้รับ API token คุณสามารถรับ token ของคุณได้โดยการสมัครที่ เว็บไซต์ทางการของ Pinpoint
การตั้งค่า
เพื่อเริ่มใช้งาน PinpointService
คุณต้องเริ่มต้นด้วยการกำหนดค่า API token และ referer URL ของคุณ:
import { PinpointService, PinpointServiceSettings } from "./path/to/service";
const settings: PinpointServiceSettings = {
token: "your-api-token",
referer: "your-referer-url",
};
const pinpointService = new PinpointService(settings);
Autocomplete
ทำการค้นหา Autocomplete โดยการส่งคำค้นหา เช่น ที่อยู่ ชื่อสถานที่ หรือพิกัดในประเทศไทย เพื่อช่วยในการเลือกสถานที่ที่ผู้ใช้ต้องการ ระบบจะคืนค่าผลลัพธ์สูงสุด 10 รายการที่เรียงตามความเกี่ยวข้อง แต่ละคำขอจะใช้เครดิต 1 หน่วยสำหรับการค้นหาที่อยู่ และ 5 หน่วยสำหรับการค้นหาพิกัด
| Parameter | Type | Description |
| :---------- | :------- | :----------------------------------------------------- |
| location
| string
| Required. ข้อความค้นหา เช่น ที่อยู่หรือชื่อสถานที่ |
| maxResult
| number
| จำนวนผลลัพธ์สูงสุดที่ต้องการ (Default=1, Max=10) |
import { PinpointService, PinpointServiceSettings } from "./path/to/service";
const settings: PinpointServiceSettings = {
token: "your-api-token",
referer: "your-referer-url",
};
const pinpointService = new PinpointService(settings);
const autoComplete = pinpointService.Autocomplete("สถานที่", 5);
ผลลัพธ์
[
{
LocationID: "12345",
FormattedAddress: "123/4 ถนนพระราม 4 เขตปทุมวัน กรุงเทพฯ 10330"
},
...
]
Details
ทำการขอรายละเอียดของสถานที่จาก Location ID ที่ได้จากการค้นหา Autocomplete โดยจะคืนค่าข้อมูลที่สมบูรณ์ เช่น ที่อยู่ ชื่อสถานที่ ชื่อธุรกิจ เป็นต้น แต่ละคำขอจะใช้เครดิต 10 หน่วย *ยังไม่รองรับ languageCode
| Parameter | Type | Description |
| :------------- | :----------- | :----------------------------------------------------- |
| location
| string
| Required. ข้อความค้นหา เช่น ที่อยู่หรือชื่อสถานที่ |
| languageCode
| "th", "en"
| ภาษาที่แสดงผล รองรับ 2 ภาษา ไทย/อังกฤษ |
import { PinpointService, PinpointServiceSettings } from "./path/to/service";
const settings: PinpointServiceSettings = {
token: "your-api-token",
referer: "your-referer-url",
};
const pinpointService = new PinpointService(settings);
const autoComplete = pinpointService.Details("สถานที่");
ผลลัพธ์
{
LocationID: "12345",
BusinessName: null,
HouseNumber: "123",
PremiseName: "อาคารศูนย์การค้า",
PremiseLaneName: "ซอยพระราม",
Moo: null,
StreetLeadingType: null,
StreetName: "พระราม 4",
StreetTrailingType: null,
SubStreetLeadingType: null,
SubStreetName: null,
SubStreetTrailingType: null,
StreetFullName: "ถนนพระราม 4",
SubDistrictPrefix: "แขวง",
SubDistrict: "ปทุมวัน",
DistrictPrefix: "เขต",
District: "ปทุมวัน",
ProvincePrefix: "กรุงเทพมหานคร",
Province: "กรุงเทพฯ",
LanguageCode: "TH",
LAT_LON: "13.746,100.533",
PostalCode: "10330",
FormattedAddress: "123/4 ถนนพระราม 4 เขตปทุมวัน กรุงเทพฯ 10330"
}
BatchDetails
ทำการขอรายละเอียดของหลายสถานที่พร้อมกัน (สูงสุด 50 รายการ)โดยคืนค่าผลลัพธ์การค้นหาที่แสดงระดับความถูกต้องของการจับคู่ที่อยู่ แต่ละคำขอจะใช้เครดิต 30 หน่วยต่อ 1 ที่อยู่
| Parameter | Type | Description |
| :--------- | :--------- | :----------------------------------------------------- |
| location
| string[]
| Required. ข้อความค้นหา เช่น ที่อยู่หรือชื่อสถานที่ |
import { PinpointService, PinpointServiceSettings } from "./path/to/service";
const settings: PinpointServiceSettings = {
token: "your-api-token",
referer: "your-referer-url",
};
const pinpointService = new PinpointService(settings);
const autoComplete = pinpointService.Details([
"สถานที่1",
"สถานที่2",
"สถานที่3",
]);
ผลลัพธ์
ข้อมูลที่ได้จากการค้นหาสถานที่ด้วย Pinpoint Batch ประกอบด้วยข้อมูลพื้นฐานของสถานที่:
- success: สถานะของการค้นหา (true หรือ false)
- fields: ชื่อฟิลด์ที่ใช้ในการค้นหา
- data: ข้อมูลที่ได้จากการค้นหา
- input: ข้อความที่ใช้ในการค้นหา
- result: ผลลัพธ์การค้นหา
- type: ประเภทของสถานที่ที่ค้นหา (address, point_of_interest, business)
- grade: ระดับความถูกต้องของการจับคู่ที่อยู่
- A: ตรงกับบ้านเลขที่, ชื่อหมู่บ้าน/โครงการ, ซอย/ถนน, แขวง/ตำบล, เขต/อำเภอ, จังหวัด
- B+: ตรงกับชื่อหมู่บ้าน/โครงการ, ซอย, แขวง/ตำบล, เขต/อำเภอ, จังหวัด
- B: ตรงกับถนน, ตำบล, อำเภอ, จังหวัด
- C: ตรงกับตำบล, อำเภอ, จังหวัด
- D: ตรงกับอำเภอ, จังหวัด
- E: ตรงกับจังหวัด
- F: ไม่พบผลลัพธ์ที่ตรงกัน
- "-": ตรงกับสถานที่สำคัญ (จุดสนใจ เช่น แลนด์มาร์ก)
- match: ข้อมูลที่ได้จากการค้นหา
- score: คะแนนความถูกต้องของการจับคู่ที่อยู่
{
success: true,
fields: [
"LocationID",
"BusinessName",
"HouseNumber",
"PremiseName",
"PremiseLaneName",
"Moo",
"StreetLeadingType",
"StreetName",
"StreetTrailingType",
"SubStreetLeadingType",
"SubStreetName",
"SubStreetTrailingType",
"StreetFullName",
"SubDistrictPrefix",
"SubDistrict",
"DistrictPrefix",
"District",
"ProvincePrefix",
"Province",
"LanguageCode",
"LAT_LON",
"PostalCode",
"FormattedAddress"
],
data: [
{
input: "สถานที่1",
result: {
type: "address",
grade: "A",
match: [
{
LocationID: "12345",
BusinessName: null,
HouseNumber: "123/4",
PremiseName: null,
PremiseLaneName: null,
Moo: null,
StreetLeadingType: null,
StreetName: "พระราม 4",
StreetTrailingType: null,
SubStreetLeadingType: null,
SubStreetName: null,
SubStreetTrailingType: null,
StreetFullName: "ถนนพระราม 4",
SubDistrictPrefix: null,
SubDistrict: "ปทุมวัน",
DistrictPrefix: null,
District: "ปทุมวัน",
ProvincePrefix: null,
Province: "กรุงเทพฯ",
LanguageCode: "th",
LAT_LON: "13.746,100.533",
PostalCode: "10330",
FormattedAddress: "123/4 ถนนพระราม 4 เขตปทุมวัน กรุงเทพฯ 10330",
}
]
}
},
{
input: "สถานที่2",
result: {
type: "point_of_interest",
grade: "B+",
match: [
{
LocationID: "67890",
BusinessName: null,
HouseNumber: "678/9",
PremiseName: null,
PremiseLaneName: null,
Moo: null,
StreetLeadingType: null,
StreetName: "รัชดาภิเษก",
StreetTrailingType: null,
SubStreetLeadingType: null,
SubStreetName: null,
SubStreetTrailingType: null,
StreetFullName: "ถนนรัชดาภิเษก",
SubDistrictPrefix: null,
SubDistrict: "ดินแดง",
DistrictPrefix: null,
District: "ดินแดง",
ProvincePrefix: null,
Province: "กรุงเทพฯ",
LanguageCode: "th",
LAT_LON: "13.764,100.537",
PostalCode: "10400",
FormattedAddress: "678/9 ถนนรัชดาภิเษก เขตดินแดง กรุงเทพฯ 10400",
}
]
}
}
]
}