รูปหลายเหลี่ยม

ชั้นเรียนสุดท้ายแบบสาธารณะ รูปหลายเหลี่ยม ขยายออบเจ็กต์

รูปหลายเหลี่ยมบนพื้นผิวโลก รูปหลายเหลี่ยมอาจเป็นรูปนูนหรือเว้า โดยอาจยาวไปถึงปี 180 ก็ได้ และอาจจะมีหลุมที่ไม่ถูกเติมเข้าไป โดยมีพร็อพเพอร์ตี้ดังต่อไปนี้

โครงร่าง
โครงร่างกำหนดโดยรายการจุดยอดแบบตามเข็มนาฬิกาหรือทวนเข็มนาฬิกา ทั้งนี้ ไม่จำเป็นเพื่อให้จุดเริ่มต้นและจุดหมายตรงกัน หากไม่ รูปหลายเหลี่ยมจะ ปิดโดยอัตโนมัติ ส่วนของเส้นตรงจะวาดระหว่างจุดติดกันของจุดใน ของ 2 ทิศทาง (ตะวันออกหรือตะวันตก)
หลุม
รูคือพื้นที่ภายในรูปหลายเหลี่ยมที่ไม่ถูกเติม มีการระบุหลุมใน ในลักษณะเดียวกับโครงร่าง รูต้องอยู่ภายในโครงร่างทั้งหมด หลายสกุลเงิน สามารถระบุหลุมได้ แต่ไม่สนับสนุนหลุมที่ทับซ้อนกัน
ความกว้างของเส้น
ความกว้างของส่วนของเส้นตรงในหน่วยพิกเซลของหน้าจอ ความกว้างคงที่และไม่ขึ้นกับความกว้างของกล้อง ระดับการซูม ค่าเริ่มต้นคือ 10
สีเส้น
สีส่วนของเส้นในรูปแบบ ARGB ซึ่งเป็นรูปแบบเดียวกับที่ Color ใช้ ค่าเริ่มต้นคือสีดำ (0xff000000)
ประเภทข้อต่อโรคหลอดเลือดสมอง
ประเภทข้อต่อจะกำหนดรูปร่างที่จะใช้เมื่อผนวกส่วนของเส้นที่อยู่ติดกันทั้งหมด จุดยอดของโครงร่างรูปหลายเหลี่ยม ดูประเภทข้อต่อที่รองรับได้ที่ JointType ค่าเริ่มต้นคือ DEFAULT
รูปแบบเส้นโครงร่าง
ทึบ (ค่าเริ่มต้นแสดงด้วย null) หรือลำดับของวัตถุ PatternItem เพื่อแสดงซ้ำตามขอบของรูปหลายเหลี่ยม ประเภท PatternItem ที่ใช้ได้: Gap (กำหนดด้วยความยาวของช่องว่างในหน่วยพิกเซล), Dash (กำหนดโดยความกว้างของเส้นโครงร่างและขีดกลาง ความยาวเป็นพิกเซล) และ Dot (วงกลม กึ่งกลางขอบของรูปหลายเหลี่ยม เส้นผ่านศูนย์กลาง กำหนดโดยความกว้างของเส้นโครงร่างเป็นพิกเซล)
เติมสี
เติมสีในรูปแบบ ARGB ซึ่งเป็นรูปแบบเดียวกับที่ Color ใช้ ค่าเริ่มต้นคือโปร่งใส (0x00000000) ถ้าไม่ได้ระบุเรขาคณิตของรูปหลายเหลี่ยม อย่างถูกต้อง (ดูโครงร่างและหลุมด้านบน) จะไม่มีการวาดสีเติม
ดัชนีลำดับ Z
ลำดับของการวาดรูปหลายเหลี่ยมตามการวางซ้อนอื่นๆ รวมถึง Polyline, Circle, GroundOverlay และ TileOverlay แต่ไม่ใช่ Marker วินาที ภาพซ้อนทับที่มีดัชนีลำดับ Z ใหญ่กว่าถูกวาดทับการวางซ้อนที่มีดัชนี Z ดัชนี z ลำดับของการวางซ้อนที่มีค่าดัชนี z เดียวกันนั้นไม่มีกฎเกณฑ์ ค่าเริ่มต้นคือ 0.
ระดับการแชร์
ระบุว่ารูปหลายเหลี่ยมปรากฏอยู่หรือมองไม่เห็น กล่าวคือเป็นรูปวาดบนแผนที่หรือไม่ CANNOT TRANSLATE ไม่มีการวาดรูปหลายเหลี่ยมที่มองไม่เห็น แต่ยังคงคุณสมบัติอื่นๆ ทั้งหมดของรูปหลายเหลี่ยมดังกล่าว ค่าเริ่มต้นคือ true ซึ่งก็คือมองเห็นได้
สถานะเรขาคณิต
ระบุว่าส่วนของรูปหลายเหลี่ยมควรวาดเป็นรูปเรขาคณิต ไม่ใช่ ที่เป็นเส้นตรงบนเส้นโครงเมอร์เคเตอร์ เส้นธรณีภาคเป็นเส้นทางที่สั้นที่สุดระหว่าง 2 ส่วน บนพื้นผิวโลก เส้นโค้งทรงกลมสร้างขึ้นโดยสมมติว่าโลกเป็น ทรงกลม
ความสามารถในการคลิกได้
หากคุณต้องการจัดการเหตุการณ์ที่เริ่มทำงานเมื่อผู้ใช้คลิกรูปหลายเหลี่ยม ให้ตั้งค่าพร็อพเพอร์ตี้นี้เป็น true คุณสามารถเปลี่ยนแปลงค่านี้ได้ตลอดเวลา โดยมีค่าเริ่มต้นเป็น false หากสิ่งนี้ พร็อพเพอร์ตี้ได้รับการตั้งค่าเป็น true แอปของคุณจะได้รับการแจ้งเตือนไปยัง GoogleMap.OnPolygonClickListener ที่ลงทะเบียนผ่าน setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
แท็ก
Object ที่เชื่อมโยงกับรูปหลายเหลี่ยม ตัวอย่างเช่น Object อาจมี ข้อมูลเกี่ยวกับสิ่งที่รูปหลายเหลี่ยมแสดง วิธีนี้ง่ายกว่าการจัดเก็บ Map<Polygon, Object> แยกต่างหาก อีกตัวอย่างหนึ่งคือคุณสามารถเชื่อมโยงรหัส String ที่สอดคล้องกับรหัสจากชุดข้อมูล Google Maps SDK สำหรับ Android ไม่ได้อ่านหรือ เขียนพร็อพเพอร์ตี้นี้

ต้องเรียกใช้เมธอดในคลาสนี้บนเทรด Android UI หากไม่เป็นเช่นนั้น IllegalStateException จะแสดงขณะรันไทม์

ตัวอย่าง

GoogleMap map;
 // ... get a map.
 // Add a triangle in the Gulf of Guinea
 Polygon polygon = map.addPolygon(new PolygonOptions()
     .add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(0, 0))
     .strokeColor(Color.RED)
     .fillColor(Color.BLUE));
 

คู่มือนักพัฒนา

โปรดอ่านข้อมูลเพิ่มเติมจากนักพัฒนาซอฟต์แวร์ Shapes

ข้อมูลสรุปของเมธอดสาธารณะ

boolean
เท่ากับ(ออบเจ็กต์อื่นๆ)
ทดสอบว่า Polygon นี้เท่ากับอีกรายการหนึ่งหรือไม่
int
getFillColor()
รับสีเติมของรูปหลายเหลี่ยมนี้
รายการ<List<LatLng>>
getHoles()
แสดงผลภาพรวมของรูของรูปหลายเหลี่ยมนี้ ณ เวลานี้
สตริง
getId()
รับรหัสของรูปหลายเหลี่ยมนี้
รายการ<LatLng>
getPoints()
ส่งคืนสแนปชอตของจุดยอดของรูปหลายเหลี่ยมนี้ ณ เวลา
int
getStrokeColor()
รับสีเส้นโครงร่างของรูปหลายเหลี่ยมนี้
int
getStrokeJointType()
รับประเภทรอยต่อของเส้นโครงร่างที่ใช้ที่จุดยอดทั้งหมดของโครงร่างรูปหลายเหลี่ยม
รายการ<PatternItem>
getStrokePattern()
รับรูปแบบเส้นโครงร่างของโครงร่างของรูปหลายเหลี่ยมนี้
จำนวนลอยตัว
getStrokeWidth()
รับความกว้างเส้นโครงร่างของรูปหลายเหลี่ยมนี้
ออบเจ็กต์
getTag()
รับแท็กสำหรับรูปหลายเหลี่ยม
จำนวนลอยตัว
getZIndex()
รับค่า zIndex ของรูปหลายเหลี่ยมนี้
int
boolean
isClickable()
รับความสามารถในการคลิกได้ของรูปหลายเหลี่ยม
boolean
isGeodesic()
รับข้อมูลว่าแต่ละส่วนของเส้นวาดเป็นทรงกลมหรือไม่
boolean
isVisible()
รับการเปิดเผยของรูปหลายเหลี่ยมนี้
เป็นโมฆะ
remove()
ลบรูปหลายเหลี่ยมออกจากแผนที่
เป็นโมฆะ
setClickable(คลิกบูลีนได้)
ตั้งค่าความสามารถในการคลิกได้ของรูปหลายเหลี่ยม
เป็นโมฆะ
setFillColor(สีเติม)
ตั้งค่าสีเติมของรูปหลายเหลี่ยมนี้
เป็นโมฆะ
setGeodesic(boolean geodesic)
กำหนดว่าจะวาดแต่ละส่วนของเส้นเป็นทรงเรขาคณิตหรือไม่
เป็นโมฆะ
setHoles(List<? extends Lists<LatLng>> หลุม)
ตั้งรูของรูปหลายเหลี่ยมนี้
เป็นโมฆะ
setPoints(รายการ <LatLng> points)
กำหนดจุดของรูปหลายเหลี่ยมนี้
เป็นโมฆะ
setStrokeColor(สีเติม)
ตั้งค่าสีเส้นโครงร่างของรูปหลายเหลี่ยมนี้
เป็นโมฆะ
setStrokeJointType(intjoinType)
ตั้งค่าประเภทการเชื่อมจุดยอดทั้งหมดของโครงร่างรูปหลายเหลี่ยม
เป็นโมฆะ
setStrokePattern(รูปแบบ List<PatternItem>)
ตั้งค่ารูปแบบเส้นโครงร่างของโครงร่างของรูปหลายเหลี่ยม
เป็นโมฆะ
setStrokeWidth(ความกว้างแบบลอย)
ตั้งค่าความกว้างเส้นโครงร่างของรูปหลายเหลี่ยมนี้
เป็นโมฆะ
setTag(แท็กออบเจ็กต์)
ตั้งค่าแท็กสำหรับรูปหลายเหลี่ยม
เป็นโมฆะ
setVisible(boolean visible)
ตั้งค่าการเปิดเผยของรูปหลายเหลี่ยมนี้
เป็นโมฆะ
setZIndex(จำนวนลอยตัว zIndex)
ตั้งค่า zIndex ของรูปหลายเหลี่ยมนี้

สรุปวิธีการที่รับมา

วิธีการสาธารณะ

สาธารณะ บูลีน เท่ากับ (ออบเจ็กต์อื่นๆ)

ทดสอบว่า Polygon นี้เท่ากับอีกรายการหนึ่งหรือไม่

พารามิเตอร์
อื่นๆ Object
การคืนสินค้า
  • เป็นจริงหากวัตถุทั้งสองเป็นวัตถุเดียวกัน ซึ่งก็คือ == อื่นๆ

สาธารณะ Int getFillColor ()

รับสีเติมของรูปหลายเหลี่ยมนี้

การคืนสินค้า
  • สีในรูปแบบ ARGB

สาธารณะ รายการ<รายการ<LatLng>> getHoles ()

แสดงผลภาพรวมของรูของรูปหลายเหลี่ยมนี้ ณ เวลานี้ รายการที่แสดงผลเป็นสำเนาของ รายการหลุมและการเปลี่ยนแปลงหลุมของรูปหลายเหลี่ยมจะไม่แสดงโดยรายการนี้ หรือ การเปลี่ยนแปลงของรายการนี้จะแสดงให้เห็นด้วยรูปเหลี่ยม

สาธารณะ สตริง getId ()

รับรหัสของรูปหลายเหลี่ยมนี้ รหัสจะไม่ซ้ำกันกับรูปหลายเหลี่ยมทั้งหมดบนแผนที่

สาธารณะ รายการ<LatLng> getPoints ()

ส่งคืนสแนปชอตของจุดยอดของรูปหลายเหลี่ยมนี้ ณ เวลา รายการที่แสดงผลเป็นสำเนา ของรายการจุดยอดมุม ดังนั้น การเปลี่ยนแปลงที่จุดยอดของรูปหลายเหลี่ยมจะไม่แสดงให้เห็น รายการ และการเปลี่ยนแปลงที่ทำกับรายการนี้จะไม่แสดงด้วยรูปหลายเหลี่ยม วิธีเปลี่ยนจุดยอดของ รูปหลายเหลี่ยม โทร setPoints(List)

สาธารณะ Int getStrokeColor ()

รับสีเส้นโครงร่างของรูปหลายเหลี่ยมนี้

การคืนสินค้า
  • สีในรูปแบบ ARGB

สาธารณะ Int getStrokeJointType ()

รับประเภทรอยต่อของเส้นโครงร่างที่ใช้ที่จุดยอดทั้งหมดของโครงร่างรูปหลายเหลี่ยม โปรดดู JointType สำหรับค่าที่เป็นไปได้

การคืนสินค้า
  • ประเภทของข้อต่อโรคหลอดเลือดสมอง

สาธารณะ รายการ <PatternItem> getStrokePattern ()

รับรูปแบบเส้นโครงร่างของโครงร่างของรูปหลายเหลี่ยมนี้

การคืนสินค้า
  • รูปแบบของเส้นโครงร่าง

สาธารณะ จำนวนลอยตัว getStrokeWidth ()

รับความกว้างเส้นโครงร่างของรูปหลายเหลี่ยมนี้

การคืนสินค้า
  • ความกว้างเป็นพิกเซลของหน้าจอ

สาธารณะ วัตถุ getTag ()

รับแท็กสำหรับรูปหลายเหลี่ยม

การคืนสินค้า
  • หากตั้งค่าแท็กด้วย setTag null หากไม่มีการตั้งค่าแท็ก

สาธารณะ จำนวนลอยตัว getZIndex ()

รับค่า zIndex ของรูปหลายเหลี่ยมนี้

การคืนสินค้า
  • zIndex ของรูปหลายเหลี่ยม

สาธารณะ Int hashCode ()

สาธารณะ บูลีน isClickable ()

รับความสามารถในการคลิกได้ของรูปหลายเหลี่ยม หากรูปหลายเหลี่ยมสามารถคลิกได้ แอปของคุณจะได้รับ ไปยัง GoogleMap.OnPolygonClickListener เมื่อผู้ใช้คลิกรูปหลายเหลี่ยม Listener เหตุการณ์ได้รับการลงทะเบียนผ่าน setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)

การคืนสินค้า
  • true หากรูปหลายเหลี่ยมสามารถคลิกได้ ไม่เช่นนั้น ระบบจะแสดงผล false

สาธารณะ บูลีน isGeodesic ()

รับข้อมูลว่าแต่ละส่วนของเส้นวาดเป็นทรงกลมหรือไม่

การคืนสินค้า
  • true หากวาดแต่ละส่วนเป็นรูปเรขาคณิต false หากแต่ละกลุ่มคือ เป็นเส้นตรงบนเส้นโครงเมอร์เคเตอร์

สาธารณะ บูลีน isVisible ()

รับการเปิดเผยของรูปหลายเหลี่ยมนี้

การคืนสินค้า
  • การมองเห็นรูปหลายเหลี่ยมนี้

สาธารณะ เป็นโมฆะ นำออก ()

ลบรูปหลายเหลี่ยมออกจากแผนที่ หลังจากที่ลบรูปหลายเหลี่ยมแล้ว ลักษณะการทำงานของรูปหลายเหลี่ยมทั้งหมด ไม่ได้ระบุเมธอด

สาธารณะ เป็นโมฆะ setClickable (คลิกบูลีนได้)

ตั้งค่าความสามารถในการคลิกได้ของรูปหลายเหลี่ยม หากรูปหลายเหลี่ยมสามารถคลิกได้ แอปของคุณจะได้รับ ไปยัง GoogleMap.OnPolygonClickListener เมื่อผู้ใช้คลิกรูปหลายเหลี่ยม Listener เหตุการณ์ได้รับการลงทะเบียนผ่าน setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)

พารามิเตอร์
คลิกได้ การตั้งค่าความสามารถในการคลิกใหม่สำหรับรูปหลายเหลี่ยม

สาธารณะ เป็นโมฆะ setFillColor (สีเติม)

ตั้งค่าสีเติมของรูปหลายเหลี่ยมนี้

พารามิเตอร์
สี สีในรูปแบบ ARGB

สาธารณะ เป็นโมฆะ setGeodesic (บูลีนภูมิศาสตร์)

กำหนดว่าจะวาดแต่ละส่วนของเส้นเป็นทรงเรขาคณิตหรือไม่

พารามิเตอร์
เรขาคณิต หาก true แต่ละส่วนจะถูกวาดเป็นทรงกลม หาก false แต่ละส่วนจะถูกวาดเป็นเส้นตรงบนเส้นโครงเมอร์เคเตอร์

สาธารณะ เป็นโมฆะ setHoles (รายการ<? ขยายรายการ<LatLng>>)

ตั้งรูของรูปหลายเหลี่ยมนี้ วิธีนี้จะเก็บสำเนาของหลุมไว้ ดังนั้นการกลายพันธุ์เพิ่มเติม ถึง holes จะไม่มีผลกับรูปหลายเหลี่ยมนี้

พารามิเตอร์
หลุม รายการหลุม โดยหลุมคือรายการ LatLng วินาที

สาธารณะ เป็นโมฆะ setPoints (แสดงคะแนน <LatLng>)

กำหนดจุดของรูปหลายเหลี่ยมนี้ วิธีนี้จะเก็บสำเนาของคะแนน และอื่นๆ การกลายพันธุ์เป็น points จะไม่มีผลกับรูปหลายเหลี่ยมนี้

พารามิเตอร์
คะแนน รายการ LatLng ที่เป็นจุดยอดของรูปหลายเหลี่ยม

สาธารณะ เป็นโมฆะ setStrokeColor (สีเติม)

ตั้งค่าสีเส้นโครงร่างของรูปหลายเหลี่ยมนี้

พารามิเตอร์
สี สีในรูปแบบ ARGB

สาธารณะ เป็นโมฆะ setStrokeJointType (int JoinType)

ตั้งค่าประเภทการเชื่อมจุดยอดทั้งหมดของโครงร่างรูปหลายเหลี่ยม

ดูค่าที่อนุญาตใน JointType ค่าเริ่มต้น DEFAULT จะ ใช้ในกรณีที่ไม่ได้ระบุประเภทข้อต่อ หรือไม่ใช่หนึ่งในค่าที่อนุญาต

พารามิเตอร์
jointType ประเภทของข้อต่อโรคหลอดเลือดสมอง

สาธารณะ เป็นโมฆะ setStrokePattern (ลาย <PatternItem>)

ตั้งค่ารูปแบบเส้นโครงร่างของโครงร่างของรูปหลายเหลี่ยม รูปแบบเส้นโครงร่างเริ่มต้นคือเส้นทึบ แสดงโดย null

พารามิเตอร์
รูปแบบ รูปแบบของเส้นโครงร่าง

สาธารณะ เป็นโมฆะ setStrokeWidth (ความกว้างแบบลอย)

ตั้งค่าความกว้างเส้นโครงร่างของรูปหลายเหลี่ยมนี้

พารามิเตอร์
ความกว้าง ความกว้างเป็นพิกเซลที่แสดง

สาธารณะ เป็นโมฆะ setTag (แท็กออบเจ็กต์)

ตั้งค่าแท็กสำหรับรูปหลายเหลี่ยม

คุณสามารถใช้พร็อพเพอร์ตี้นี้เพื่อเชื่อมโยง Object ที่กำหนดเองกับรูปหลายเหลี่ยมนี้ได้ สำหรับ ตัวอย่างเช่น Object อาจมีข้อมูลเกี่ยวกับสิ่งที่รูปหลายเหลี่ยมแสดง ง่ายกว่า มากกว่าการจัดเก็บ Map<Polygon, Object> แยกต่างหาก อีกตัวอย่างหนึ่งคือ คุณสามารถเชื่อมโยง รหัส String ที่ตรงกับรหัสจากชุดข้อมูล Google Maps SDK สำหรับ Android ก็ไม่ได้เช่นกัน จะอ่านและเขียนคุณสมบัตินี้ คุณมีหน้าที่โทรหา setTag(null) เพื่อเคลียร์ แท็กเมื่อคุณไม่ต้องการใช้อีกต่อไป เพื่อป้องกันไม่ให้หน่วยความจำรั่วไหลในแอป

พารามิเตอร์
แท็ก หากเป็นค่าว่าง ระบบจะล้างแท็ก

สาธารณะ เป็นโมฆะ setVisible (แสดงบูลีน)

ตั้งค่าการเปิดเผยของรูปหลายเหลี่ยมนี้ เมื่อมองไม่เห็น จะไม่มีการวาดรูปหลายเหลี่ยมแต่จะเก็บทั้งหมดไว้ พร็อพเพอร์ตี้อื่นๆ ด้วย

พารามิเตอร์
มองเห็นได้ หาก true รูปหลายเหลี่ยมจะปรากฏ หาก false ไม่ใช่

สาธารณะ เป็นโมฆะ setZIndex (ดัชนี z แบบลอย)

ตั้งค่า zIndex ของรูปหลายเหลี่ยมนี้ รูปหลายเหลี่ยมที่มี zIndices สูงกว่าจะถูกวาดเหนือดัชนีที่มี zIndices ต่ำกว่า ดัชนี

พารามิเตอร์
zIndex zIndex ของรูปหลายเหลี่ยมนี้