ตัวเลือกรูปแบบช่วยให้คุณปรับแต่งการนำเสนอรูปแบบแผนที่ Google มาตรฐานได้ โดยเปลี่ยนการแสดงภาพของฟีเจอร์ต่างๆ เช่น ถนน สวนสาธารณะ ธุรกิจ และจุดที่น่าสนใจอื่นๆ นอกจากจะเปลี่ยนรูปแบบของฟีเจอร์เหล่านี้แล้ว คุณยังซ่อนฟีเจอร์ทั้งหมดได้ด้วย ซึ่งหมายความว่าคุณสามารถเน้นองค์ประกอบบางอย่างของแผนที่หรือทำให้แผนที่เข้ากับสไตล์ของหน้าเว็บโดยรอบได้
ตัวอย่าง
การประกาศสไตล์ JSON ต่อไปนี้จะเปลี่ยนองค์ประกอบทั้งหมดในแผนที่เป็นสีเทา จากนั้นจะเปลี่ยนสีเรขาคณิตของถนนสายหลักเป็นสีน้ำเงิน และซ่อนป้ายกำกับภูมิทัศน์ทั้งหมด
[ { "featureType": "all", "stylers": [ { "color": "#C0C0C0" } ] },{ "featureType": "road.arterial", "elementType": "geometry", "stylers": [ { "color": "#CCFFFF" } ] },{ "featureType": "landscape", "elementType": "labels", "stylers": [ { "visibility": "off" } ] } ]
MapOptions.styles เมื่อสร้างแผนที่หรือเรียกใช้ Map.setOptions()
ดูตัวอย่างที่สมบูรณ์ซึ่งแสดงวิธีใช้การจัดรูปแบบ JSON ในแอปได้ที่การเลือกแผนที่ที่มีการจัดสไตล์
ออบเจ็กต์ JSON
การประกาศสไตล์ JSON ประกอบด้วยองค์ประกอบต่อไปนี้
- featureType (ไม่บังคับ) - ฟีเจอร์ที่จะเลือกสำหรับการแก้ไขรูปแบบนี้ องค์ประกอบคือลักษณะทางภูมิศาสตร์บนแผนที่ ซึ่งรวมถึงถนน สวนสาธารณะ แหล่งน้ำ และอื่นๆ หากไม่ระบุฟีเจอร์ ระบบจะเลือกฟีเจอร์ทั้งหมด
- elementType (ไม่บังคับ) - พร็อพเพอร์ตี้ของฟีเจอร์ที่ระบุที่จะเลือก องค์ประกอบคือส่วนย่อยของฟีเจอร์ ซึ่งรวมถึงป้ายกำกับและเรขาคณิต หากคุณไม่ระบุองค์ประกอบ ระบบจะเลือกองค์ประกอบทั้งหมดของฟีเจอร์
- stylers - กฎที่จะใช้กับองค์ประกอบและฟีเจอร์ที่เลือก Styler จะระบุสี ระดับการมองเห็น และน้ำหนักขององค์ประกอบ คุณสามารถใช้ตัวจัดรูปแบบอย่างน้อย 1 รายการกับฟีเจอร์ได้
หากต้องการระบุสไตล์ คุณต้องรวมชุดตัวเลือก featureType และ elementType กับ stylers ไว้ในอาร์เรย์สไตล์ คุณสามารถกำหนดเป้าหมายชุดค่าผสมของฟีเจอร์ในอาร์เรย์เดียวได้ อย่างไรก็ตาม จำนวนสไตล์ที่คุณใช้พร้อมกันได้มีจำกัด หากอาร์เรย์สไตล์มีจำนวนอักขระเกินจำนวนสูงสุด ระบบจะไม่ใช้สไตล์ใดๆ
ส่วนที่เหลือของหน้านี้มีข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์ องค์ประกอบ และสไตเลอร์
featureType
ข้อมูลโค้ด JSON ต่อไปนี้จะเลือกถนนทั้งหมดบนแผนที่
{ "featureType": "road" }
องค์ประกอบหรือประเภทองค์ประกอบคือลักษณะทางภูมิศาสตร์บนแผนที่ ซึ่งรวมถึงถนน สวนสาธารณะ แหล่งน้ำ ธุรกิจ และอื่นๆ
ฟีเจอร์ต่างๆ จะสร้างแผนผังหมวดหมู่ โดยมี all เป็นราก หากคุณไม่ระบุฟีเจอร์ ระบบจะเลือกฟีเจอร์ทั้งหมด
การระบุฟีเจอร์ของ all จะให้ผลลัพธ์เหมือนกัน
ฟีเจอร์บางอย่างมีฟีเจอร์ย่อยที่คุณระบุโดยใช้สัญกรณ์จุด เช่น landscape.natural หรือ road.local หากคุณระบุเฉพาะองค์ประกอบหลัก เช่น road รูปแบบที่คุณระบุสำหรับองค์ประกอบหลักจะมีผลกับองค์ประกอบย่อยทั้งหมด เช่น road.local และ road.highway
โปรดทราบว่าฟีเจอร์หลักอาจมีองค์ประกอบบางอย่างที่ไม่ได้รวมอยู่ในฟีเจอร์ย่อยทั้งหมด
ฟีเจอร์ที่พร้อมใช้งานมีดังนี้
all(ค่าเริ่มต้น) จะเลือกฟีเจอร์ทั้งหมดadministrativeเลือกเขตบริหารทั้งหมด การจัดรูปแบบจะมีผลกับป้ายกำกับของเขตบริหารเท่านั้น ไม่ใช่ขอบเขตทางภูมิศาสตร์หรือการเติมสีadministrative.countryเลือกประเทศadministrative.land_parcelเลือกแปลงที่ดินadministrative.localityเลือกท้องถิ่นadministrative.neighborhoodเลือกย่านใกล้เคียงadministrative.provinceเลือกจังหวัด
landscapeเลือกแนวนอนทั้งหมดlandscape.man_madeจะเลือกองค์ประกอบที่มนุษย์สร้างขึ้น เช่น อาคารและโครงสร้างอื่นๆlandscape.naturalจะเลือกสถานที่ทางธรรมชาติ เช่น ภูเขา แม่น้ำ ทะเลทราย และธารน้ำแข็งlandscape.natural.landcoverจะเลือกฟีเจอร์สิ่งปกคลุมดิน ซึ่งเป็นวัสดุทางกายภาพที่ปกคลุมพื้นผิวโลก เช่น ป่าไม้ ทุ่งหญ้า พื้นที่ชุ่มน้ำ และพื้นดินเปล่าlandscape.natural.terrainจะเลือกลักษณะภูมิประเทศของพื้นผิว เช่น ระดับความสูง ความลาดชัน และการวางแนว
poiเลือกจุดที่น่าสนใจทั้งหมดpoi.attractionเลือกสถานที่ท่องเที่ยวpoi.businessเลือกธุรกิจpoi.governmentเลือกอาคารรัฐบาลpoi.medicalเลือกบริการช่วยเหลือฉุกเฉิน ซึ่งรวมถึงโรงพยาบาล ร้านขายยา ตำรวจ แพทย์ และอื่นๆpoi.parkเลือกอุทยานpoi.place_of_worshipเลือกสถานที่สักการะ ซึ่งรวมถึงโบสถ์ วัด มัสยิด และอื่นๆpoi.schoolเลือกโรงเรียนpoi.sports_complexเลือกศูนย์บริการด้านกีฬา
roadเลือกถนนทั้งหมดroad.arterialเลือกถนนสายหลักroad.highwayเลือกทางหลวงroad.highway.controlled_accessเลือกทางหลวงที่มีการควบคุมการเข้าถึงroad.localเลือกถนนในท้องถิ่น
transitเลือกสถานีขนส่งและเส้นทางทั้งหมดtransit.lineเลือกเส้นทางขนส่งสาธารณะtransit.stationเลือกสถานีขนส่งทั้งหมดtransit.station.airportเลือกสนามบินtransit.station.busเลือกป้ายรถประจำทางtransit.station.railเลือกสถานีรถไฟ
waterเลือกแหล่งน้ำ
elementType
ข้อมูลโค้ด JSON ต่อไปนี้จะเลือกป้ายกำกับสำหรับถนนในพื้นที่ทั้งหมด
{ "featureType": "road.local", "elementType": "labels" }
องค์ประกอบคือส่วนย่อยของฟีเจอร์ ตัวอย่างเช่น ถนนประกอบด้วยเส้นกราฟิก (เรขาคณิต) บนแผนที่ และข้อความที่ระบุชื่อ (ป้ายกำกับ)
องค์ประกอบต่อไปนี้พร้อมใช้งาน แต่โปรดทราบว่าฟีเจอร์หนึ่งๆ อาจไม่รองรับองค์ประกอบใดเลย รองรับบางองค์ประกอบ หรือรองรับองค์ประกอบทั้งหมด
สีข้อความป้ายกำกับ fill และ stroke จะเปลี่ยนไปตามระดับการซูม
กำหนดทั้ง fill และ stroke เสมอเพื่อให้ประสบการณ์การใช้งานสอดคล้องกันในทุกระดับการซูม
all(ค่าเริ่มต้น) จะเลือกองค์ประกอบทั้งหมดของฟีเจอร์ที่ระบุ-
geometryเลือกองค์ประกอบทางเรขาคณิตทั้งหมดของฟีเจอร์ที่ระบุgeometry.fillจะเลือกเฉพาะการเติมสีของเรขาคณิตขององค์ประกอบgeometry.strokeจะเลือกเฉพาะเส้นขอบของเรขาคณิตขององค์ประกอบ
-
labelsจะเลือกป้ายกำกับข้อความที่เชื่อมโยงกับฟีเจอร์ที่ระบุlabels.iconจะเลือกเฉพาะไอคอนที่แสดงภายในป้ายกำกับของฟีเจอร์labels.textจะเลือกเฉพาะข้อความของป้ายกำกับ-
labels.text.fillจะเลือกเฉพาะสีเติมของป้ายกำกับ โดยปกติแล้ว การเติมสีของป้ายกำกับจะแสดงผลเป็นเส้นขอบสีที่ล้อมรอบข้อความป้ายกำกับ labels.text.strokeจะเลือกเฉพาะเส้นขอบของข้อความของป้ายกำกับ
stylers
สไตเลอร์คือตัวเลือกการจัดรูปแบบที่คุณใช้กับองค์ประกอบและฟีเจอร์ของแผนที่ได้
ข้อมูลโค้ด JSON ต่อไปนี้แสดงฟีเจอร์เป็นสีเขียวสดโดยใช้ค่า RGB
"stylers": [ { "color": "#99FF33" } ]
ข้อมูลโค้ดนี้จะนำความเข้มทั้งหมดออกจากสีขององค์ประกอบ ไม่ว่าสีเริ่มต้นจะเป็นสีใดก็ตาม ผลลัพธ์ที่ได้คือการแสดงผลฟีเจอร์เป็นโทนสีเทา ดังนี้
"stylers": [ { "saturation": -100 } ]
ข้อมูลโค้ดนี้จะซ่อนฟีเจอร์โดยสมบูรณ์
"stylers": [ { "visibility": "off" } ]
ระบบรองรับตัวเลือกรูปแบบต่อไปนี้
hue(สตริงเลขฐานสิบหก RGB ของรูปแบบ#RRGGBB) ระบุสีพื้นฐานหมายเหตุ: ตัวเลือกนี้จะตั้งค่าสีโดยคงความอิ่มตัวและความสว่างที่ระบุไว้ในสไตล์เริ่มต้นของ Google (หรือในตัวเลือกสไตล์อื่นๆ ที่คุณกำหนดบนแผนที่) สีที่ได้จะสัมพันธ์กับสไตล์ของแผนที่ฐาน หาก Google ทำการเปลี่ยนแปลงใดๆ กับรูปแบบแผนที่ฐาน การเปลี่ยนแปลงดังกล่าวจะส่งผลต่อฟีเจอร์ของแผนที่ซึ่งจัดรูปแบบด้วย
hueคุณควรใช้เครื่องมือจัดรูปแบบcolorแบบสัมบูรณ์หากทำได้lightness(ค่าจุดลอยตัวระหว่าง-100และ100) บ่งบอกถึงเปอร์เซ็นต์การเปลี่ยนแปลงความสว่างขององค์ประกอบ ค่าลบจะเพิ่มความมืด (โดยที่ -100 หมายถึงสีดำ) ส่วนค่าบวกจะเพิ่มความสว่าง (โดยที่ +100 หมายถึงสีขาว)หมายเหตุ: ตัวเลือกนี้จะตั้งค่าความสว่างโดยยังคงความอิ่มตัวและสีที่ระบุไว้ในสไตล์เริ่มต้นของ Google (หรือในตัวเลือกสไตล์อื่นๆ ที่คุณกำหนดบนแผนที่) สีที่ได้จะสัมพันธ์กับสไตล์ของแผนที่ฐาน หาก Google ทำการเปลี่ยนแปลงใดๆ กับรูปแบบแผนที่ฐาน การเปลี่ยนแปลงดังกล่าวจะส่งผลต่อฟีเจอร์ของแผนที่ซึ่งจัดรูปแบบด้วย
lightnessคุณควรใช้เครื่องมือจัดรูปแบบcolorแบบสัมบูรณ์หากทำได้saturation(ค่าจุดลอยตัวระหว่าง-100และ100) ระบุเปอร์เซ็นต์การเปลี่ยนแปลงความเข้มของสีพื้นฐานที่จะใช้กับองค์ประกอบหมายเหตุ: ตัวเลือกนี้จะตั้งค่าความอิ่มตัวของสีขณะที่ยังคงสีและความสว่างที่ระบุไว้ในสไตล์เริ่มต้นของ Google (หรือในตัวเลือกสไตล์อื่นๆ ที่คุณกำหนดบนแผนที่) สีที่ได้จะสัมพันธ์กับสไตล์ของแผนที่ฐาน หาก Google ทำการเปลี่ยนแปลงใดๆ กับรูปแบบแผนที่ฐาน การเปลี่ยนแปลงดังกล่าวจะส่งผลต่อฟีเจอร์ของแผนที่ซึ่งจัดรูปแบบด้วย
saturationคุณควรใช้เครื่องมือจัดรูปแบบcolorแบบสัมบูรณ์หากทำได้gamma(ค่าจุดลอยตัวระหว่าง0.01และ10.0โดยที่1.0ไม่ใช้การแก้ไข) ระบุจำนวนการแก้ไขแกมมาที่จะใช้กับองค์ประกอบ การแก้ไขแกมมาจะปรับความสว่างของสีในลักษณะที่ไม่ใช่เชิงเส้น โดยไม่ส่งผลต่อค่าสีขาวหรือสีดำ โดยทั่วไปแล้ว การแก้ไขแกมมาจะใช้เพื่อปรับเปลี่ยนคอนทราสต์ขององค์ประกอบหลายรายการ เช่น คุณสามารถแก้ไขแกมมาเพื่อเพิ่มหรือลดคอนทราสต์ระหว่างขอบและด้านในขององค์ประกอบหมายเหตุ: ตัวเลือกนี้จะปรับความสว่างที่สัมพันธ์กับสไตล์ Google เริ่มต้นโดยใช้เส้นโค้งแกมมา หาก Google ทำการเปลี่ยนแปลงรูปแบบแผนที่ฐาน การเปลี่ยนแปลงดังกล่าวจะส่งผลต่อฟีเจอร์ของแผนที่ซึ่งจัดรูปแบบด้วย
gammaคุณควรใช้เครื่องมือจัดรูปแบบcolorแบบสัมบูรณ์หากทำได้invert_lightness(หากtrue) จะกลับค่าความสว่างที่มีอยู่ ซึ่งมีประโยชน์ เช่น สำหรับการเปลี่ยนไปใช้แผนที่ที่มืดกว่าซึ่งมีข้อความสีขาวอย่างรวดเร็วหมายเหตุ: ตัวเลือกนี้จะกลับสีของสไตล์ Google เริ่มต้นเท่านั้น หาก Google ทำการเปลี่ยนแปลงใดๆ กับรูปแบบแผนที่ฐาน การเปลี่ยนแปลงดังกล่าวจะส่งผลต่อฟีเจอร์ของแผนที่ซึ่งจัดรูปแบบด้วย
invert_lightnessคุณควรใช้เครื่องมือจัดรูปแบบcolorแบบสัมบูรณ์หากทำได้visibility(on,offหรือsimplified) ระบุว่าองค์ประกอบจะปรากฏบนแผนที่หรือไม่และปรากฏอย่างไร ระดับการมองเห็นsimplifiedจะนำฟีเจอร์การจัดรูปแบบบางอย่างออกจากฟีเจอร์ที่ได้รับผลกระทบ เช่น ถนนจะถูกทำให้เป็นเส้นที่บางลงโดยไม่มีเส้นขอบ ส่วนสวนสาธารณะจะไม่มีข้อความป้ายกำกับแต่ยังคงมีไอคอนป้ายกำกับอยู่color(สตริงเลขฐานสิบหก RGB ในรูปแบบ#RRGGBB) จะกำหนดสีของฟีเจอร์weight(ค่าจำนวนเต็มที่มากกว่าหรือเท่ากับ 0) กำหนดความหนาขององค์ประกอบเป็นพิกเซล การตั้งค่าน้ำหนักเป็นค่าสูงอาจส่งผลให้เกิดการตัดภาพใกล้กับขอบไทล์
ระบบจะใช้กฎการจัดรูปแบบตามลำดับที่คุณระบุ อย่ารวมการดำเนินการหลายรายการไว้ในการดำเนินการสไตล์เดียว แต่ให้กำหนดการดำเนินการแต่ละรายการเป็นรายการแยกต่างหากในอาร์เรย์สไตล์
หมายเหตุ: ลำดับมีความสำคัญเนื่องจากการดำเนินการบางอย่างไม่สามารถสลับที่ได้ ฟีเจอร์และ/หรือองค์ประกอบที่แก้ไขผ่านการดำเนินการกับสไตล์ (โดยปกติ) จะมีสไตล์อยู่แล้ว การดำเนินการจะส่งผลต่อรูปแบบที่มีอยู่เหล่านั้น (หากมี)
รูปแบบโทนสี ความอิ่มตัว แสง
แผนที่สไตล์คุณใช้โมเดล Hue, Saturation, Lightness (HSL) เพื่อแสดงสีภายในการดำเนินการของเครื่องมือจัดรูปแบบ Hue หมายถึงสีพื้นฐาน saturation หมายถึงความเข้มของสีนั้น และ lightness หมายถึงปริมาณสีขาวหรือสีดำที่สัมพันธ์กันในสีที่เป็นองค์ประกอบ
การแก้ไขแกมมาจะปรับเปลี่ยนความสว่างในขอบเขตสี โดยทั่วไปจะใช้เพื่อเพิ่มหรือลดคอนทราสต์ นอกจากนี้ โมเดล HSL ยังกำหนดสีภายในพื้นที่พิกัด โดยที่ hue บ่งบอกถึงการวางแนวภายในวงล้อสี ส่วนความอิ่มตัวและความสว่างบ่งบอกถึงแอมพลิจูดตามแกนต่างๆ ระบบจะวัดเฉดสีภายในขอบเขตสี RGB ซึ่งคล้ายกับขอบเขตสี RGB ส่วนใหญ่ ยกเว้นว่าจะไม่มีเฉดสีขาวและดำ

แม้ว่า hue จะใช้รหัสสีแบบเลขฐาน 16 ของ HTML แต่จะใช้ค่านี้เพื่อกำหนดสีพื้นฐานเท่านั้น ซึ่งก็คือการวางแนวรอบวงล้อสี ไม่ใช่ความอิ่มตัวหรือความสว่าง ซึ่งจะระบุแยกต่างหากเป็นเปอร์เซ็นต์การเปลี่ยนแปลง
เช่น คุณสามารถกำหนดสีเขียวบริสุทธิ์เป็น hue:0x00ff00 หรือ hue:0x000100 ทั้ง 2 สีเหมือนกัน ทั้ง 2 ค่าจะชี้ไปที่สีเขียวบริสุทธิ์ในโมเดลสี HSL

วงล้อสี RGB
ค่า RGB hue ซึ่งประกอบด้วยส่วนที่เท่ากันของสีแดง สีเขียว และสีน้ำเงินไม่ได้ระบุโทนสี เนื่องจากไม่มีค่าใดที่ระบุการวางแนวในพื้นที่พิกัด HSL ตัวอย่างเช่น "#000000" (ดำ), "#FFFFFF" (ขาว) และเฉดสีเทาล้วนทั้งหมด หากต้องการระบุสีดำ สีขาว หรือสีเทา คุณต้องนำ saturation ทั้งหมดออก (ตั้งค่าเป็น -100) และปรับ lightness แทน
นอกจากนี้ เมื่อแก้ไขฟีเจอร์ที่มีอยู่ซึ่งมีรูปแบบสีอยู่แล้ว การเปลี่ยนค่า เช่น hue จะไม่เปลี่ยน saturation หรือ lightness ที่มีอยู่