---
title: "การคำนวณเส้นทางด้วย Route Web Service"
description: "เรียนรู้วิธีคำนวณเส้นทางโดยตรงด้วย Longdo Map Route Web Service REST API รับผลลัพธ์เป็น JSON แบบ turn-by-turn หรือ GeoJSON FeatureCollection โดยไม่ต้องโหลด JS SDK"
canonical_url: "https://map.longdo.com/docs/v3/javascript/routing/routing-webservice/"
last_updated: "2026-09-24T21:20:37.390Z"
---

# การคำนวณเส้นทางด้วย Route Web Service

<map-demo preset="v3-routing-webservice-1">



</map-demo>

## วิธีการคำนวณเส้นทางผ่าน Web Service

**Route Web Service** เป็น REST endpoint ธรรมดาที่ไม่ขึ้นกับเวอร์ชันของ SDK แผนที่ — สามารถเรียกด้วย `fetch()` และรับข้อมูลเส้นทางกลับมาได้โดยไม่ต้องโหลด `longdo.Map` เลย เป็น endpoint เดียวกันกับที่ใช้ในเอกสาร v2 มีเพียง SDK ที่ใช้แสดงแผนที่เท่านั้นที่เปลี่ยนไปสำหรับ v3 ไม่ใช่ web service นี้ ใช้ [`Route` object ของ SDK](/javascript/routing/routing-api) เมื่อต้องการให้แผนที่วาดและจัดการเส้นทางให้เอง หรือเรียก web service นี้ตรง ๆ เมื่อต้องการแค่ข้อมูลเส้นทางดิบ (เช่น ใช้งานบนเซิร์ฟเวอร์ หรือต้องการวาดเส้นทางเอง)

### การคำนวณเส้นทาง (JSON)

```text
https://api.longdo.com/RouteService/json/route/guide?flon=100.53726&flat=13.72427&tlon=100.54061&tlat=13.72669&key=[YOUR-KEY-API]
```

เรียกจากเบราวเซอร์เหมือน REST endpoint ทั่วไป:

```javascript
fetch(
  'https://api.longdo.com/RouteService/json/route/guide?flon=100.53726&flat=13.72427&tlon=100.54061&tlat=13.72669&key=[YOUR-KEY-API]'
)
  .then(function (res) { return res.json(); })
  .then(function (data) {
    console.log(data); // ผลลัพธ์เส้นทาง
  });
```

Request Method: GET

- `flon, flat` : ค่าลองจิจูดและละติจูดของจุดเริ่มต้น
- `tlon, tlat` : ค่าลองจิจูดและละติจูดของจุดสิ้นสุด
- `mode` : โหมดการค้นหาเส้นทาง เช่น `t` (หลีกเลี่ยงการจราจร) หรือ `b` (เวลาที่ดีที่สุด) — ดู [Routing with the Longdo Map API](/javascript/routing/routing-api) (ค่าเริ่มต้น: หลีกเลี่ยงการจราจร)
- `type` : ประเภทของยานพาหนะ/เส้นทาง เช่น `1` (ถนน) หรือ `8` (เรือข้ามฟาก) (ค่าเริ่มต้น: ทุกประเภท)
- `restrict` : การจำกัดประเภทเส้นทาง — `0` ไม่จำกัด, `1` จำกัดเส้นทางจักรยาน (ค่าเริ่มต้น: ไม่จำกัด)
- `maxresult` : จำนวนผลลัพธ์ที่ต้องการ (ค่าเริ่มต้น: 1, สูงสุด: 8)
- `locale` : ภาษาของชื่อถนนที่ได้ `th` หรือ `en` (ค่าเริ่มต้น: `th`)
- `key` : Longdo Map API key ของคุณ

#### ผลลัพธ์ (JSON)

```json
{
  "meta": {
    "from": { "lon": 100.53726, "lat": 13.72427 },
    "to": { "lon": 100.54061, "lat": 13.72669 },
    "config": "t25thnull"
  },
  "data": [
    {
      "fdistance": 6.698,
      "tdistance": 97.413,
      "id": 3122391,
      "guide": [
        { "turn": 4, "name": "ถนนสุขุมวิท", "distance": 1886.0, "interval": 432 },
        { "turn": 0, "name": "ศูนย์ประชุมแห่งชาติสิริกิต", "distance": 74.0, "interval": 66 }
      ],
      "distance": 3977,
      "interval": 669,
      "penalty": 90
    }
  ]
}
```

- `meta.from` / `meta.to` : จุดเริ่มต้นและจุดสิ้นสุดที่ส่งไปในคำขอ
- `meta.config` : ค่าตั้งค่าคำขอที่ระบบใช้จริง (`mode` + `type` + `locale`)
- `data` : รายการเส้นทางที่พบ (สูงสุดตาม `maxresult`)

  - `fdistance` : ระยะทางจากจุดเริ่มต้นถึงถนนที่ใกล้ที่สุด (เมตร)
  - `tdistance` : ระยะทางจากถนนที่ใกล้ที่สุดถึงจุดสิ้นสุด (เมตร)
  - `id` : Path ID
  - `distance` : ระยะทางรวมจากจุดเริ่มต้นถึงจุดสิ้นสุด (เมตร)
  - `interval` : เวลาเดินทางรวม (วินาที)
  - `guide` : ขั้นตอนการเดินทางแบบ turn-by-turn ตามเส้นทาง
  
    - `name` : ชื่อถนนหรือซอย
    - `turn` : [รหัสประเภทการเลี้ยว](http://api.longdo.com/map/doc/rest.php#TurnCode)
    - `distance` : ระยะทางของช่วงนี้ (เมตร)
    - `interval` : เวลาเดินทางของช่วงนี้ (วินาที)

### การคำนวณเส้นทางแบบ GeoJSON

เส้นทางเดียวกันสามารถขอผลลัพธ์เป็น GeoJSON `FeatureCollection` ได้ ซึ่งสะดวกเมื่อต้องการวาดเส้นทางเอง (เช่นด้วย `map.Renderer` หรือแผนที่อื่นที่รองรับ GeoJSON):

```text
https://api.longdo.com/RouteService/geojson/route?flon=100.53726&flat=13.72427&tlon=100.54061&tlat=13.72669&mode=d&type=17&locale=th&key=[YOUR-KEY-API]
```

```javascript
fetch(
  'https://api.longdo.com/RouteService/geojson/route?flon=100.53726&flat=13.72427&tlon=100.54061&tlat=13.72669&mode=d&type=17&locale=th&key=[YOUR-KEY-API]'
)
  .then(function (res) { return res.json(); })
  .then(function (geojson) {
    console.log(geojson); // FeatureCollection ของถนนที่ใช้เดินทาง
  });
```

รับ parameter เดียวกันกับด้านบน: `flon, flat, tlon, tlat, mode, type, restrict, maxresult, locale, key`

#### ผลลัพธ์ (GeoJSON)

```json
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "MultiLineString",
        "coordinates": [[100.537315, 13.724065], [100.537933, 13.724226]]
      },
      "properties": { "name": "ถนนสาทรเหนือ", "turn": 4, "distance": 69.0, "interval": 44 }
    }
  ],
  "properties": {
    "fdistance": 23.409,
    "tdistance": 12.521,
    "distance": 569,
    "interval": 182
  }
}
```

- `properties` (ระดับบนสุด) : ข้อมูลของเส้นทาง — `fdistance`, `tdistance`, `distance` และ `interval` มีความหมายเดียวกับในผลลัพธ์แบบ JSON ด้านบน
- `features` : หนึ่ง `Feature` ต่อหนึ่งช่วงถนนที่ใช้เดินทาง แต่ละอันเป็น `MultiLineString`
  - `properties.name` : ชื่อถนนหรือซอย
  - `properties.turn` : [รหัสประเภทการเลี้ยว](http://api.longdo.com/map/doc/rest.php#TurnCode)
  - `properties.distance` / `properties.interval` : ระยะทาง (เมตร) และเวลาเดินทาง (วินาที) ของช่วงนี้

> **ดูเพิ่มเติม:** [เอกสาร Route Web Service](http://api.longdo.com/map/doc/rest.php#RouteGuide)

<code-section src="/snippet/v3/javascript/routing/routing-webservice/script.js">



</code-section>
