---
schema_version: "1"
id: 1e5dedd38797a3f69dbb5b4df5e706fecf433307be8d9cc7bbfe25748cb1d6c1
title: เชื่อมต่อข้อมูลเชิงพื้นที่ในฐานข้อมูล
collection: tableau
version: next
locale: th-th
portal_url: https://docs.salesforce.com/tableau/next/th-th/pro/desktop/maps_spatial_sql.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/th-th/maps_spatial_sql.htm
source_site: help.tableau.com
content_type: documentation
content_hash: cc4cf44a7781fb55dfa2357af6e9cc8b154e292116b0508b176ec435e84f60e9
description: Connect to spatial data in a database and use custom SQL or RAWSQL for analysis.
---
[ข้ามไปยังเนื้อหาหลัก](#main-content)

# เชื่อมต่อข้อมูลเชิงพื้นที่ในฐานข้อมูล

คุณสามารถใช้คอลัมน์เชิงพื้นที่ที่จัดเก็บไว้ในฐานข้อมูลของคุณเพื่อสร้างการแสดงแผนที่เป็นภาพใน Tableau คุณสามารถเชื่อมต่อกับแหล่งข้อมูลเชิงพื้นที่ที่รองรับ และสร้างการแสดงเป็นภาพเพื่อวิเคราะห์ข้อมูลเชิงพื้นที่ได้ หรือคุณสามารถเชื่อมต่อกับการค้นหา SQL หรือ RAWSQL แบบปรับแต่งเองเพื่อทำการวิเคราะห์เชิงพื้นที่ขั้นสูง

Tableau รองรับการเชื่อมต่อโดยตรงกับข้อมูลเชิงพื้นที่โดยใช้ตัวเชื่อมต่อดังนี้

- Amazon Redshift
- Microsoft SQL Server
- Google BigQuery (ใน Tableau 2026.2)
- Oracle
- PostgreSQL + PostGIS
- Pivotal Greenplum + PostGIS
- Snowflake

หากต้องการข้อมูลเกี่ยวกับการใช้ตัวเชื่อมต่อเหล่านี้ โปรดดูตัวอย่างตัวเชื่อมต่อ [Microsoft SQL Server](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_sqlserver.htm), [PostgreSQL](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_postgresql.htm), [Pivotal Greenplum Database](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_greenplum.htm), [Oracle](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_oracle.htm) หรือ [Snowflake](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_snowflake.htm)

## ข้อมูลเชิงพื้นที่และ SRID ที่รองรับ

**Microsoft SQL Server** รองรับเฉพาะข้อมูลเชิงพื้นที่ประเภทภูมิศาสตร์เท่านั้น

**PostgreSQL + PostGIS**, Oracle และ **Pivotal Greenplum + PostGIS** รองรับฟิลด์ประเภทภูมิศาสตร์และรูปทรงเรขาคณิต ฟิลด์รูปทรงเรขาคณิตต้องระบุประเภทภูมิศาสตร์ (เช่น POINT, LINESTRING) และ SRID เพื่อให้ระบบรู้จักในฐานะฟิลด์เชิงพื้นที่ ฟิลด์ข้อมูลภูมิศาสตร์ต้องระบุประเภทภูมิศาสตร์ที่จะให้ระบบรู้จัก

**หมายเหตุ**: ใน PostgreSQL + PostGIS คุณสามารถเชื่อมต่อกับตารางที่มีรูปทรงเรขาคณิตที่ผสมกันทั้ง 2 ประเภทได้ (จุด เส้น และรูปหลายเหลี่ยม) แต่ Tableau จะไม่แสดงผลข้อมูลเหล่านี้พร้อมกัน

ตัวเชื่อมต่อเหล่านี้รองรับ **SRID** ต่อไปนี้

- NAD83 (EPSG:4269)
- ETRS89 (EPSG:4258)
- WGS84 (EPSG:4326)

ใน PostgreSQL + PostGIS นั้น SRID จะมีค่าเริ่มต้นเป็น WGS84 (EPSG: 4326) เสมอ

Tableau รองรับการเชื่อมต่อทั้งแบบสดและแบบแยกข้อมูลโดยใช้ตัวเชื่อมต่อเหล่านี้

## เชื่อมต่อไปยังคอลัมน์เชิงพื้นที่

**หมายเหตุ**: ตั้งแต่ Tableau 2026.2 เป็นต้นไป คุณสามารถเชื่อมต่อกับคอลัมน์เชิงพื้นที่ใน [Google BigQuery](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_googlebigquery.htm) ได้

1. เปิด Tableau และเชื่อมต่อกับข้อมูลของคุณ  
    หากต้องการข้อมูลเกี่ยวกับวิธีการเชื่อมต่อกับข้อมูลโดยใช้ตัวเชื่อมต่อที่รองรับ โปรดดู ตัวอย่างตัวเชื่อมต่อ [Microsoft SQL Server](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_sqlserver.htm), [PostgreSQL](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_postgresql.htm), [Oracle](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_oracle.htm), [Pivotal Greenplum Database](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_greenplum.htm) หรือ [Snowflake](https://help.tableau.com/v0.0/pro/desktop/th-th/examples_snowflake.htm)
2. บนหน้าแหล่งข้อมูล ในแผงด้านซ้ายใต้ตาราง ให้ลากตารางที่มีข้อมูลเชิงพื้นที่มาไว้ในแคนวาส  
    ![แหล่งข้อมูลของโรงเรียนรัฐซีแอตเทิลกำลังถูกลากมายังผืนผ้าใบแหล่งข้อมูล](/tableau/next/th-th/pro/desktop/th-th/Img/maps_sql2.png)  
    
    คอลัมน์เชิงพื้นที่จะแสดงชื่อเดียวกันกับที่ใช้ในฐานข้อมูลของคุณ
    
    ตอนนี้คุณพร้อมที่จะสร้างแผนที่ใน Tableau โดยใช้ข้อมูลเชิงพื้นที่แล้ว หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างแผนที่จากไฟล์เชิงพื้นที่ โปรดดู [สร้างมุมมองแผนที่จากข้อมูลเชิงพื้นที่](https://help.tableau.com/v0.0/pro/desktop/th-th/maps_shapefiles.htm#Build)

## ใช้ SQL แบบปรับแต่งเองและ RAWSQL เพื่อดำเนินการวิเคราะห์เชิงพื้นที่ขั้นสูง

### เชื่อมต่อกับการค้นหา SQL แบบปรับแต่งเอง

1. เปิด Tableau และเชื่อมต่อกับฐานข้อมูลของคุณ
2. บนหน้าแหล่งข้อมูล ในแผงด้านซ้าย ให้ลาก SQL แบบปรับแต่งเองใหม่มาไว้บนแคนวาส
3. พิมพ์หรือวางการค้นหาของคุณลงในกล่องโต้ตอบ “แก้ไข SQL แบบปรับแต่งเอง” ที่ปรากฏขึ้น หากต้องการดูตัวอย่าง SQL ที่ปรับแต่งเองที่คุณสามารถใช้กับข้อมูลเชิงพื้นที่ได้ โปรดดู[ตัวอย่างการค้นหา SQL แบบปรับแต่งเอง](#CustomSQL)
4. เมื่อเสร็จแล้ว ให้คลิกตกลง

หากต้องการข้อมูลเพิ่มเติม โปรดดู [เชื่อมต่อกับการค้นหา SQL แบบปรับแต่งเอง](https://help.tableau.com/v0.0/pro/desktop/th-th/customsql.htm)

### ตัวอย่างการค้นหา SQL แบบปรับแต่งเอง

การค้นหาต่อไปนี้เป็นตัวอย่าง โปรดทราบว่าการค้นหา SQL แบบปรับแต่งเองจะแตกต่างกันไปตามแหล่งข้อมูล

#### หากข้อมูลของคุณมีจุด 2 ชุด เช่น โรงเรียนและสวนสาธารณะ และคุณต้องการแสดงว่ามีจุดตัดกันที่ใด

SELECT S.\[name\] as SchoolName, P.\[name\] as PubSpaceName, S.geog\_schools.STBuffer(<Parameters.Radius>) as Geog\_School, P.geog\_pub\_space as Geog\_Pub\_Space FROM TestSpatial.dbo.seattle\_public\_schools S LEFT JOIN TestSpatial.dbo.seattle\_pub\_space P ON S.geog\_schools.STBuffer(<Parameters.Radius>) STIntersects(P.geog\_pub\_space) = 1

ตัวอย่างการค้นหานี้จะสร้างแถวสำหรับแต่ละกรณี ซึ่งรูปหลายเหลี่ยมของพื้นที่สาธารณะอยู่ภายในระยะรัศมี (เมตร) จากโรงเรียน ผลลัพธ์การค้นหาจะมีลักษณะดังนี้ในตารางกริดข้อมูล:

![แผงแหล่งข้อมูลที่มี 2 ฟิลด์ที่มีการใช้บทบาททางภูมิศาสตร์](/tableau/next/th-th/pro/desktop/th-th/Img/maps_sql3.png)

**หมายเหตุ**: ตัวอย่างนี้อ้างอิงถึงพารามิเตอร์ที่ชื่อ "Radius" โดยวัดระยะทาง (เมตร) และมีการตั้งค่าต่อไปนี้

- ประเภทข้อมูล: เลขทศนิยม
- ค่าปัจจุบัน: 600
- ค่าที่อนุญาต: ช่วง
- ต่ำสุด: 100
- สูงสุด 2,000
- ขนาดขั้น: 50

เมื่อใช้พารามิเตอร์นี้ คุณจะสามารถปรับความสัมพันธ์ระหว่างโรงเรียนและพื้นที่สาธารณะได้แบบไดนามิก

หากต้องการข้อมูลเพิ่มเติม โปรดดูหัวข้อ [ใช้พารามิเตอร์ในการค้นหา SQL แบบปรับแต่งเอง](https://help.tableau.com/v0.0/pro/desktop/th-th/customsql.htm#parameters)

#### หากคุณต้องการข้อมูลบริเวณจุดใดจุดหนึ่งเท่านั้น

`SELECT * FROM [Test_spatial_<username>].[dbo].[SDOT_Collisions] C WHERE C.geom.STIntersects(geography::STGeomFromText('POINT(-122.344706 47.650388)', 4326).STBuffer(1000))=1`

ตัวอย่างการค้นหานี้จำกัดข้อมูลไว้ที่ 1000 เมตรรอบๆ POINT รัศมีสามารถเป็นพารามิเตอร์ได้ เช่นเดียวกับ[พารามิเตอร์ที่ใช้ในตัวอย่างแรก](#Radius)

หรือจะใช้สี่เหลี่ยมผืนผ้าแทนจุดและรัศมีก็ได้ ตัวอย่าง:

`SELECT * FROM [Test_spatial_<username>].[dbo].[SDOT_Collisions] C   WHERE C.geom.STIntersects(geography::STGeomFromText('POLYGON ((-122.3625 47.6642,-122.3625 47.6493,-122.3427 47.6493,-122.3422 47.6642,-122.3625 47.6642))', 4326))=1`

ลำดับที่คดเคี้ยวของจุดรูปหลายเหลี่ยม (ตามเข็มนาฬิกาเทียบกับทวนเข็มนาฬิกา) จะเป็นตัวกำหนดว่าคุณจะได้จุดชุดใด คุณสามารถย้อนกลับลำดับที่คดเคี้ยวด้วยฟังก์ชัน SQL Server ReorientObject()

#### หากคุณได้รับข้อผิดพลาดเกี่ยวกับประเภทข้อมูลที่ผสมกัน

`SELECT *, F.geom.STGeometryType() as geomtype FROM [Test_spatial_<username>].[dbo].[us_historic_fire_perimeters_dd83] F   WHERE F.geom.STGeometryType() = 'MultiPolygon' OR F.geom.STGeometryType() = 'Polygon'`

ตัวอย่างการค้นหานี้จะกรองข้อมูลเชิงพื้นที่ประเภทรูปทรงเรขาคณิตออกไป เนื่องจาก Tableau ไม่สามารถแสดงผลข้อมูลเชิงพื้นที่ประเภทรูปทรงเรขาคณิตสำหรับการเชื่อมต่อ Microsoft SQL Server ได้ คุณสามารถเลือกประเภทเชิงพื้นที่อื่นๆ ได้เช่นกัน

#### หากข้อมูลของคุณแสดงผลช้าเกินไปใน Tableau

`SELECT [Id], [OBJECTID], [fire_num], [year_], [acres], [fire_name], [unit_id], [Shape_Leng], [Shape_Area], [geom].Reduce(500) as SimpleGeom   FROM [Test_spatial_<username>].[dbo].[us_historic_fire_perimeters_dd83]   WHERE [geom].Reduce(500).STGeometryType() = 'MultiPolygon' OR [geom].Reduce(500).STGeometryType() = 'Polygon'`

ตัวอย่างการค้นหานี้อาจลดขนาดข้อมูลไปมาก (บางออบเจ็กต์จะถูกลดเป็นจุดและจะถูกทิ้งไป)

### ใช้ RAWSQL

หากต้องการใช้ RAWSQL กับข้อมูลเชิงพื้นที่ คุณสามารถสร้างฟิลด์ที่คำนวณได้โดยใช้ฟังก์ชัน RAWSQL\_SPATIAL หรือ RAWSQLAGG\_SPATIAL ตัวอย่าง: 

`RAWSQL_SPATIAL("Select %1.STIntersection(%2.STBuffer(200))",[school_geom], [park_geom])`

สูตรนี้จะส่งคืนข้อมูลเชิงพื้นที่ที่ไม่ซ้ำกันโดยอิงตามจุดตัดของ 2 ค่า

`RAWSQLAGG_SPATIAL("ST_ConvexHull(ST_Collect(%1))", [Geog])`

`RAWSQLAGG_SPATIAL("ST_ConcaveHull(ST_Collect(%1), %2, false)", [Geog], [ParameterValue])`

แต่ละรายการจะส่งคืนพื้นที่ขอบเขตรอบจุดข้อมูลที่ระบุ ConcaveHull เป็นพื้นที่ขอบเขตขั้นต่ำโดยอิงตามความแม่นยำ ซึ่งก็คือค่าพารามิเตอร์ในฟังก์ชันนี้

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการใช้ RAWSQL กับข้อมูลเชิงพื้นที่ โปรดดู [ฟังก์ชันส่งผ่าน (RAWSQL)](https://help.tableau.com/v0.0/pro/desktop/th-th/functions_functions_passthrough.htm) หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างฟิลด์ที่คำนวณ โปรดดู [สร้างฟิลด์ที่คำนวณ](https://help.tableau.com/v0.0/pro/desktop/th-th/calculations_calculatedfields_create.htm#Create)

> [!WARNING]
> 
> หมายเหตุ: ฟังก์ชันเชิงพื้นที่ RAWSQL จะใช้งานไม่ได้เมื่อเชื่อมต่อกับ Oracle

**หมายเหตุ**: อาจเกิดข้อผิดพลาดได้เมื่อใช้ RAWSQL เฉพาะกับฟังก์ชัน PostGIS เมื่อใช้ PostgreSQL + PostGIS

## การแก้ปัญหาเกี่ยวกับการเชื่อมต่อเชิงพื้นที่

### ปัญหาด้านประสิทธิภาพ

เมื่อทำงานกับคอลัมน์เชิงพื้นที่ที่รวมเข้าด้วยกันซึ่งมีระเบียนข้อมูลจำนวนมาก อาจเกิดเครื่องหมายซ้ำได้ ซึ่งอาจส่งผลให้ประสิทธิภาพการทำงานช้าลง

หากต้องการปรับปรุงประสิทธิภาพ ให้แยกแหล่งข้อมูลที่รวมเข้าด้วยกัน หากต้องการข้อมูลเพิ่มเติม โปรดดู[แยกข้อมูลของคุณ](https://help.tableau.com/v0.0/pro/desktop/th-th/extracting_data.htm)

### ข้อความแสดงข้อผิดพลาดและวิธีแก้ไขสำหรับ Microsoft SQL Server

เมื่อตารางเชิงพื้นที่กำลังใช้การอ้างอิงเชิงพื้นที่ที่ไม่รองรับ

**ข้อความแสดงข้อผิดพลาด:**

เกิดข้อผิดพลาดขณะสื่อสารกับแหล่งข้อมูล '<data source name>’ ของ Microsoft SQL Server  
การเชื่อมต่อไม่ดี: Tableau ไม่สามารถเชื่อมต่อกับแหล่งข้อมูลได้  
\[Microsoft\]\[ODBC Driver 13 for SQL Server\]\[SQL Server\]การแคลชประเภทตัวถูกดำเนินการ: รูปทรงเรขาคณิตไม่เข้ากันกับภูมิศาสตร์​  
\[Microsoft\]\[ODBC Driver 13 for SQL Server\]\[SQL Server\]ไม่สามารถเตรียมคำสั่งได้​

**วิธีแก้ปัญหา:**

- ส่งออกข้อมูลเชิงพื้นที่จาก Microsoft SQL Server ไปยัง Shapefile แล้วเชื่อมต่อใน Tableau การเชื่อมต่อไฟล์เชิงพื้นที่จะผ่านกระบวนการแปลงข้อมูลที่รองรับการคาดการณ์หลายพันรายการ
- ส่งออกข้อมูลจาก Microsoft SQL Server และแปลงข้อมูลโดยใช้เครื่องมือ GIS เช่น QGIS หรือ ArcGIS จากนั้นจึงโหลดตารางกลับเข้าไปใน Microsoft SQL Server ​​

เมื่อตารางเชิงพื้นที่มีออบเจ็กต์เชิงพื้นที่หลายประเภท

ข้อความแสดงข้อผิดพลาด:

ไม่สามารถดำเนินการให้เสร็จสิ้นได้  
การดำเนินการเชิงพื้นที่ส่งผลให้เกิด MixedGeometry หรือ MixedGeography ซึ่ง Tableau ยังไม่รองรับ  
การดำเนินการเชิงพื้นที่ส่งผลให้เกิด MixedGeometry หรือ MixedGeography ซึ่ง Tableau ยังไม่รองรับ

**วิธีแก้ปัญหา:**

ใช้ SQL แบบกำหนดเองเพื่อกรองข้อมูล หากต้องการข้อมูลเพิ่มเติม โปรดดู ตัวอย่าง SQL แบบปรับแต่งเองในหัวข้อ[หากคุณได้รับข้อผิดพลาดเกี่ยวกับประเภทข้อมูลที่ผสมกัน](#mix)

เมื่อการวัดผลถูกรวมเข้าด้วยกันในการแสดงเป็นภาพ

ข้อความแสดงข้อผิดพลาด:

เกิดข้อผิดพลาดขณะสื่อสารกับแหล่งข้อมูล '<data source name>' ของ Microsoft SQL Server  
การเชื่อมต่อไม่ดี: Tableau ไม่สามารถเชื่อมต่อกับแหล่งข้อมูลได้  
ไม่สามารถใช้ฟังก์ชันการรวมในนิพจน์ที่มีการรวมหรือการค้นหาย่อยได้

**วิธีแก้ปัญหา**:

การวัดผลแบบไม่รวมในการแสดงเป็นภาพ: ให้เลือกการวิเคราะห์ จากนั้นจึงล้างการวัดผลแบบรวม

### ข้อความแสดงข้อผิดพลาดและวิธีแก้ปัญหาสำหรับ PostgreSQL + PostGIS, Oracle และ Pivotal Greenplum + PostGIS

เมื่อใช้ SRID แบบผสมและมีหนึ่งใน SRID ที่ไม่รองรับ

**ข้อความแสดงข้อผิดพลาด:**

เกิดข้อผิดพลาดขณะสื่อสารกับแหล่งข้อมูล '<data source name>' ของ PostgreSQL  
การเชื่อมต่อไม่ดี: Tableau ไม่สามารถเชื่อมต่อกับแหล่งข้อมูลได้  
ข้อผิดพลาด: การดำเนินการบนรูปทรงเรขาคณิต SRID แบบผสม  
เกิดข้อผิดพลาดขณะดำเนินการค้นหา  
<query> จาก <datasource>  
ข้อผิดพลาด: การดำเนินการบนรูปทรงเรขาคณิต SRID แบบผสม  
เกิดข้อผิดพลาดขณะดำเนินการค้นหา  
SELECT ST\_ForceCollection(ST\_Collect("mixed\_SRID\_geography"."location"::geometry)) AS "clct:location:nk"  
FROM "public"."mixed\_SRID\_geography" "mixed\_SRID\_geography"HAVING (COUNT(1) > 0)

วิธีแก้ปัญหา:

การวัดผลแบบไม่รวมในการแสดงเป็นภาพ: ให้เลือกการวิเคราะห์ จากนั้นจึงล้างการวัดผลแบบรวม การดำเนินการนี้จะลบข้อความแสดงข้อผิดพลาดและข้อมูลที่ไม่รองรับ SRID

เมื่อตารางเชิงพื้นที่กำลังใช้การอ้างอิงเชิงพื้นที่ที่ไม่รองรับ

ใน PostgreSQL + PostGIS คุณสามารถเชื่อมต่อกับตารางที่มี SRID ที่ไม่รองรับได้ แต่คอลัมน์รูปทรงเรขาคณิตจะแสดงเป็น "ไม่ทราบ"

**วิธีแก้ปัญหา:**

- ส่งออกข้อมูลเชิงพื้นที่จาก PostgreSQL + PostGIS ไปยัง Shapefile แล้วเชื่อมต่อใน Tableau การเชื่อมต่อไฟล์เชิงพื้นที่จะผ่านกระบวนการแปลงข้อมูลที่รองรับการคาดการณ์หลายพันรายการ
- ส่งออกข้อมูลจาก PostgreSQL + PostGIS และแปลงข้อมูลโดยใช้เครื่องมือ GIS เช่น QGIS หรือ ArcGIS จากนั้นจึงโหลดตารางกลับเข้าไปใน PostgreSQL + PostGIS ​​

เมื่อผลการค้นหามีขนาดเกินขีดจำกัด 1 GB

**ข้อความแสดงข้อผิดพลาด**:

ข้อผิดพลาด: ขนาดอาร์เรย์เกินขนาดสูงสุดที่อนุญาต (1073741823); เกิดข้อผิดพลาดขณะดำเนินการค้นหา"  
SELECT ST\_Collect(geom) FROM <data source>

**วิธีแก้ปัญหา:**

เขียนการคำนวณใหม่ให้มีประสิทธิภาพมากขึ้น โปรดดู[แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างการคำนวณใน Tableau](https://help.tableau.com/v0.0/pro/desktop/th-th/calculations_calculatedfields_bestpractices.htm) หรือ[สร้างการคำนวณที่มีประสิทธิภาพ](https://help.tableau.com/v0.0/pro/desktop/th-th/perf_efficient_calcs.htm)

## ตัวอย่าง - สร้างแผนที่จากข้อมูลเชิงพื้นที่ของ Microsoft SQL Server

ตัวอย่างต่อไปนี้จะสาธิตวิธีสร้างแผนที่ด้านล่าง ซึ่งแสดงโรงเรียนที่อยู่ภายในระยะ 600 เมตรจากสวนสาธารณะในเมืองซีแอตเทิล รัฐวอชิงตัน

![แผนที่พื้นที่สาธารณะภายในระยะ 400 เมตรจากโรงเรียนในเมืองซีแอตเทิล](/tableau/next/th-th/pro/desktop/th-th/Img/maps_sql10.png)

ตัวอย่างนี้ใช้การเชื่อมต่อ Microsoft SQL Server กับฐานข้อมูลที่ชื่อว่า TestSpatial โดยใช้ตารางต่อไปนี้จากฐานข้อมูลนี้

- seattle\_schools
- seattle\_public\_space

### ขั้นตอนที่ 1: เชื่อมต่อ

1. เปิด Tableau Desktop และเชื่อมต่อกับ Microsoft SQL Server
2. บนหน้าแหล่งข้อมูล ในแผงด้านซ้าย ให้ลาก SQL แบบปรับแต่งเองใหม่มาไว้บนแคนวาส
3. พิมพ์หรือวางการค้นหาลงในกล่องโต้ตอบ “แก้ไข SQL แบบปรับแต่งเอง” ที่ปรากฏขึ้น
    
    ในตัวอย่างนี้จะใช้การค้นหาต่อไปนี้
    
    SELECT S.\[name\] as SchoolName, P.\[name\] as PubSpaceName, S.geog\_schools.STBuffer(<Parameters.Radius>) as Geog\_School, P.geog\_pub\_space as Geog\_Pub\_Space FROM TestSpatial.dbo.seattle\_public\_schools S FULL JOIN TestSpatial.dbo.seattle\_public\_space P ON S.geog\_schools.STBuffer(<Parameters.Radius>) STIntersects(P.geog\_pub\_space) = 1
    
    **หมายเหตุ**: ตัวอย่างนี้อ้างอิงถึงพารามิเตอร์ที่ชื่อ "Radius" หากต้องการข้อมูลเพิ่มเติม โปรดดูหัวข้อ [ใช้พารามิเตอร์ในการค้นหา SQL แบบปรับแต่งเอง](https://help.tableau.com/v0.0/pro/desktop/th-th/customsql.htm#parameters)
    
    ผลลัพธ์การค้นหาจะมีลักษณะดังนี้
    
    ![แผงแหล่งข้อมูลที่มี 2 ฟิลด์ที่มีการใช้บทบาททางภูมิศาสตร์](/tableau/next/th-th/pro/desktop/th-th/Img/maps_sql3.png)

### ขั้นตอนที่ 2: สร้างแผนที่

1. ไปที่เวิร์กชีตใหม่
2. ในแผง**ข้อมูล** ให้ดับเบิลคลิกที่ฟิลด์เชิงพื้นที่
    
    ในตัวอย่างนี้จะใช้ **Geog\_School** เมื่อดับเบิลคลิก ระบบจะเพิ่มลงใน “รายละเอียด” บนการ์ดเครื่องหมายโดยอัตโนมัติ และสร้างมุมมองแผนที่ขึ้น
    
    ![แผนที่เมืองซีแอตเทิลพร้อมจุดข้อมูลที่แสดงเป็นจุดต่างๆ](/tableau/next/th-th/pro/desktop/th-th/Img/maps_sql4.png)
3. ในแผง**ข้อมูล** ให้ลากฟิลด์มิติข้อมูลไปยังป้ายกำกับบนการ์ดเครื่องหมาย ในตัวอย่างนี้จะใช้**ชื่อโรงเรียน**
4. เลือกการวิเคราะห์ \> สร้างฟิลด์ที่คำนวณ
5. ในตัวแก้ไขการคำนวณที่เปิดขึ้น ให้ทำดังนี้
    
    - ตั้งชื่อฟิลด์ที่คำนวณ โดยในตัวอย่างนี้ ฟิลด์ที่คำนวณจะชื่อว่าจุดตัด
    - ป้อนสูตร RAWSQL ลงไป ตัวอย่างนี้จะใช้สูตรต่อไปนี้:
        
        RAWSQL\_SPATIAL ("Select %1.STIntersection(%2)", \[Geog\_School\], \[Geog\_Pub\_Space\])
        
        สูตรนี้จะส่งคืนข้อมูลเชิงพื้นที่ที่ไม่ซ้ำกันโดยอิงตามจุดตัดของรูปทรงเรขาคณิต 2 รูป
    - เมื่อเสร็จแล้ว ให้คลิกตกลง
6. เลือกการวิเคราะห์ จากนั้นจึงล้างการวัดผลแบบรวม
7. จากแผง**ข้อมูล** ให้ลากฟิลด์ที่คำนวณใหม่ (ในกรณีนี้คือ**จุดตัด**) ไปยังเลเยอร์ใหม่บนเวิร์กชีต
    
    ![กล่องเพิ่มเลเยอร์เครื่องหมายที่ปรากฏขึ้นเมื่อลากฟิลด์ทางภูมิศาสตร์ไปบนแคนวาสซึ่งมีแผนที่อยู่แล้ว](/tableau/next/th-th/pro/desktop/th-th/Img/maps_sql6.png)  
    แผนที่จะอัปเดตข้อมูลด้วยเลเยอร์ใหม่ของรูปหลายเหลี่ยมจากฟิลด์จุดตัด เครื่องหมายจะเป็นรูปทรงเชิงพื้นที่ที่ไม่ซ้ำกันเนื่องจากใช้สูตร RAWSQL  
    ![แผนที่ย่าน Montlake ในเมืองซีแอตเทิล แสดงสวนสาธารณะ ถนน และอาคารต่างๆ](/tableau/next/th-th/pro/desktop/th-th/Img/maps_sql11.png)
8. ในแผง**ข้อมูล** ให้ลากฟิลด์มิติข้อมูลไปยังรายละเอียดบนการ์ดเครื่องหมาย วิธีนี้จะทำให้เครื่องหมายไม่รวมเข้าด้วยกัน
    
    ในตัวอย่างนี้จะใช้มิติข้อมูล PubSpaceName
9. ในแผง**ข้อมูล** ให้ลากฟิลด์มิติข้อมูลเดียวกันนั้นไปยังสีบนการ์ดเครื่องหมาย
    
    ในตัวอย่างนี้ พื้นที่สาธารณะแต่ละแห่งได้รับการกำหนดสีไว้แล้ว
    
    ![แผนที่เมืองซีแอตเทิลแสดงตำแหน่งของ Volunteer Park และถนนและโครงสร้างโดยรอบ](/tableau/next/th-th/pro/desktop/th-th/Img/maps_sql7.png)

1. จัดรูปแบบแผนที่ หากต้องการข้อมูลเพิ่มเติม โปรดดูหัวข้อ [ปรับแต่งรูปลักษณ์ของแผนที่ของคุณ](https://help.tableau.com/v0.0/pro/desktop/th-th/maps_options.htm)
    
    ในตัวอย่างนี้จะใช้การจัดรูปแบบต่อไปนี้
    
    - บัฟเฟอร์ของโรงเรียน (Geog\_School) เป็นสีเทา
    - ป้ายกำกับชื่อโรงเรียนเป็นสีขาว
    - รูปแบบพื้นหลังของแผนที่ตั้งค่าเป็นสีเข้ม
    - เลเยอร์ถนนและทางหลวงจะแสดงบนแผนที่พื้นหลัง
    
    ตอนนี้แผนที่ก็เสร็จสมบูรณ์แล้ว
    
    ![แผนที่โรงเรียนในเมืองซีแอตเทิล รัฐวอชิงตัน พร้อมแผงโต้ตอบ](/tableau/next/th-th/pro/desktop/th-th/Img/maps_sql9.png)

## ดูเพิ่มเติม

[สร้าง Tableau Maps จากไฟล์เชิงพื้นที่](https://help.tableau.com/v0.0/pro/desktop/th-th/maps_shapefiles.htm)

[เชื่อมต่อกับการค้นหา SQL แบบปรับแต่งเอง](https://help.tableau.com/v0.0/pro/desktop/th-th/customsql.htm)

[ฟังก์ชันส่งผ่าน (RAWSQL)](https://help.tableau.com/v0.0/pro/desktop/th-th/functions_functions_passthrough.htm)

[เริ่มต้นการคำนวณใน Tableau](https://help.tableau.com/v0.0/pro/desktop/th-th/calculations_calculatedfields_create.htm)

[การรวมเชิงพื้นที่ทำงานช้าและส่งคืนผลลัพธ์ที่สลับที่กันโดยใช้ข้อมูลเชิงพื้นที่ KML หรือ SQL ที่นำเข้าจาก Shapefile หรือ GeoJSON](https://kb.tableau.com/articles/issue/spatial-join-slow-and-returns-inverted-results-using-kml-or-sql-spatial-data-imported-from-shapefile-or-geojson?lang=it-it)