การวางซ้อนแบบเรียงชิดกัน

คลาสสุดท้ายสาธารณะ TileOverlay ขยายออบเจ็กต์

การวางซ้อนของชิ้นส่วนแผนที่คือชุดภาพที่แสดงที่ด้านบนของชิ้นส่วนแผนที่ฐาน ชิ้นส่วนเหล่านี้อาจเป็นแบบโปร่งใส ซึ่งช่วยให้คุณเพิ่มจุดสนใจลงในแผนที่ที่มีอยู่ได้ การวางซ้อนของชิ้นส่วนแผนที่มีคุณสมบัติดังต่อไปนี้

ผู้ให้บริการกระเบื้อง
TileProvider มอบรูปภาพที่ใช้ในการวางซ้อนของชิ้นส่วนแผนที่ คุณต้องระบุผู้ให้บริการการ์ดก่อนเพิ่มลงในแผนที่ เมื่อเพิ่มผู้ให้บริการการ์ดแล้วจะเปลี่ยนแปลงไม่ได้ แต่จะเปลี่ยนลักษณะการทำงานของผู้ให้บริการการ์ดเพื่อให้แสดงรูปภาพที่แตกต่างกันสำหรับพิกัดที่เฉพาะเจาะจงได้ หากการ์ดที่มาจากผู้ให้บริการการ์ดมีการเปลี่ยนแปลง คุณต้องเรียกใช้ clearTileCache() ในภายหลังเพื่อให้แน่ใจว่าการ์ดก่อนหน้าจะไม่แสดงอีกต่อไป
ดัชนีลำดับ Z
ลำดับการวาดการวางซ้อนของชิ้นส่วนนี้โดยสัมพันธ์กับการวางซ้อนอื่นๆ (รวมถึง GroundOverlay, Circle, Polyline และ Polygon แต่ไม่รวม Marker) การวางซ้อนที่มีดัชนี z ใหญ่กว่าจะถูกวาดทับบนโฆษณาซ้อนทับที่มีดัชนี z ที่เล็กกว่า ลำดับของโฆษณาซ้อนทับที่มีดัชนีลำดับ Z เดียวกันจะเป็นแบบอิสระ zIndex เริ่มต้นคือ 0
ความโปร่งใส
ความโปร่งใสของการวางซ้อนของชิ้นส่วนในช่วง [0..1] โดยที่ 0 หมายความว่าการวางซ้อนเป็นแบบทึบ และ 1 หมายถึงการวางซ้อนโปร่งใส หากบิตแมปที่ระบุโปร่งใสบางส่วนอยู่แล้ว ระบบจะปรับขนาดความโปร่งใสของแต่ละพิกเซลให้สอดคล้องกัน (เช่น หากพิกเซลในบิตแมปมีค่าอัลฟ่าเป็น 200 และคุณระบุความโปร่งใสของการวางซ้อนของชิ้นส่วนเป็น 0.25 พิกเซลจะแสดงผลบนหน้าจอด้วยค่าอัลฟ่าที่ 150) ข้อมูลจำเพาะของพร็อพเพอร์ตี้นี้เป็นแบบไม่บังคับและความโปร่งใสเริ่มต้นคือ 0 (ทึบ)
ระดับการแชร์
ระบุว่าการวางซ้อนของชิ้นส่วนแผนที่มองเห็นได้หรือไม่ อย่างเช่น ภาพถูกวาดบนแผนที่หรือไม่ ระบบจะไม่วาดการวางซ้อนของชิ้นส่วนแผนที่ที่มองไม่เห็น แต่องค์ประกอบอื่นๆ ทั้งหมดไว้จะยังคงอยู่ ค่าเริ่มต้นคือ true นั่นคือแสดง

คุณต้องเรียกใช้เมธอดในคลาสนี้ในเทรดหลักเท่านั้น มิเช่นนั้นระบบจะสร้าง IllegalStateException

พิกัดแผนที่ย่อย

โปรดทราบว่าโลกถูกฉายภาพโดยใช้เส้นโครงเมอร์เคเตอร์ (ดูวิกิพีเดีย) โดยทางซ้าย (ตะวันตก) ของแผนที่ที่สัมพันธ์กับลองจิจูด -180 องศา และด้านขวา (ตะวันออก) ของแผนที่ที่สัมพันธ์กับลองจิจูด 180 องศา ในการทำให้แผนที่เป็นสี่เหลี่ยมจัตุรัส ด้านบน (ทิศเหนือ) ของแผนที่จะสอดคล้องกับละติจูด 85.0511 องศา และด้านล่าง (ใต้) ของแผนที่จะสอดคล้องกับละติจูด -85.0511 องศา พื้นที่ที่อยู่นอกช่วงละติจูดนี้จะไม่แสดงผล

ในแต่ละระดับการซูม ระบบจะแบ่งแผนที่ออกเป็นชิ้นส่วนแผนที่ โดยจะดาวน์โหลดและแสดงผลเฉพาะชิ้นส่วนที่ทับซ้อนหน้าจอเท่านั้น แต่ละชิ้นส่วนเป็นสี่เหลี่ยมจัตุรัส และแผนที่จะแบ่งออกเป็นชิ้นส่วนดังนี้

  • เมื่อซูมระดับ 0 ภาพ 1 ภาพจะแสดงถึงโลกทั้งใบ พิกัดของไทล์นั้นคือ (x, y) = (0, 0)
  • ที่ระดับการซูม 1 โลกจะแบ่งออกเป็น 4 ชิ้นส่วนที่จัดเรียงอยู่ในตาราง 2 x 2
  • ...
  • ในระดับการซูม N โลกจะแบ่งออกเป็นชิ้นส่วน 4N ชิ้นที่จัดเรียงในตารางกริดขนาด 2N x 2N
โปรดทราบว่าระดับการซูมขั้นต่ำที่กล้องรองรับ (ซึ่งขึ้นอยู่กับหลายปัจจัย) คือ GoogleMap.getMinZoomLevel และระดับการซูมสูงสุดคือ GoogleMap.getMaxZoomLevel

พิกัดของชิ้นส่วนแผนที่จะวัดจากมุมซ้ายบน (ทิศตะวันตกเฉียงเหนือ) ของแผนที่ ที่ระดับการซูม N ค่า x ของพิกัดไทล์จะอยู่ในช่วงตั้งแต่ 0 ถึง 2N - 1 และเพิ่มขึ้นจากทิศตะวันตกถึงตะวันออก และค่า y จะอยู่ในช่วง 0 ถึง 2N - 1 และเพิ่มขึ้นจากทิศเหนือถึงทิศใต้

ตัวอย่าง

GoogleMap map; // ... get a map.
 TileProvider tileProvider; // ... create a tile provider.
 TileOverlay tileOverlay = map.addTileOverlay(
     new TileOverlayOptions().tileProvider(tileProvider));
 

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

void
clearTileCache()
ล้างแคชไทล์เพื่อให้มีการขอไทล์ทั้งหมดจาก TileProvider อีกครั้ง
boolean
เท่ากับ(ออบเจ็กต์อื่นๆ)
ทดสอบว่า TileOverlay นี้เท่ากับอีกหรือไม่
boolean
getFadeIn()
กำหนดว่าชิ้นส่วนการวางซ้อนควรจางเข้ามาหรือไม่
สตริง
getId()
รับรหัสของการวางซ้อนชิ้นส่วนนี้
float
getTransparency()
รับความโปร่งใสของการวางซ้อนชิ้นส่วนนี้
float
getZIndex()
รับดัชนี z ของการวางซ้อนชิ้นส่วนนี้
int
boolean
isVisible()
รับการเปิดเผยการวางซ้อนของชิ้นส่วนนี้
void
remove()
นำการวางซ้อนของชิ้นส่วนแผนที่นี้ออกจากแผนที่
void
setFadeIn(เฟดอินบูลีน)
ตั้งค่าว่าชิ้นส่วนการวางซ้อนควรจางเข้ามาหรือไม่
void
setTransparency(ความโปร่งใสแบบลอย)
ตั้งค่าความโปร่งใสของการวางซ้อนชิ้นส่วนนี้
void
setVisible(แสดงบูลีน)
ตั้งค่าการมองเห็นการวางซ้อนของชิ้นส่วนภาพนี้
void
setZIndex(Float zIndex)
ตั้งค่า zดัชนี ของการวางซ้อนชิ้นส่วนภาพนี้

ข้อมูลสรุปของเมธอดที่รับช่วงมา

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

โมฆะสาธารณะ clearTileCache ()

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

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

ทดสอบว่า TileOverlay นี้เท่ากับอีกหรือไม่

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

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

กำหนดว่าชิ้นส่วนการวางซ้อนควรจางเข้ามาหรือไม่

คิกรีเทิร์น
  • true หากการ์ดค่อยๆ เลือนหาย false หากการ์ดไม่ปรากฏขึ้น

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

รับรหัสของการวางซ้อนชิ้นส่วนนี้

แบบลอยสาธารณะ getTransparency ()

รับความโปร่งใสของการวางซ้อนชิ้นส่วนนี้

คิกรีเทิร์น
  • ความโปร่งใสของการวางซ้อนของชิ้นส่วนนี้

ทศนิยมสาธารณะ getZIndex ()

รับดัชนี z ของการวางซ้อนชิ้นส่วนนี้

คิกรีเทิร์น
  • zIndex ของการวางซ้อนชิ้นส่วนภาพ

สาธารณะ int hashCode ()

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

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

คิกรีเทิร์น
  • การมองเห็นการวางซ้อนของชิ้นส่วนแผนที่นี้

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

นำการวางซ้อนของชิ้นส่วนแผนที่นี้ออกจากแผนที่

โมฆะสาธารณะ setFadeIn (boolean fadeIn)

ตั้งค่าว่าชิ้นส่วนการวางซ้อนควรจางเข้ามาหรือไม่

พารามิเตอร์
fadeIn true เพื่อทำให้ชิ้นส่วนค่อยๆ ปรากฏขึ้น และกด false เพื่อแสดงผลทันที

Public void setTransparency (ความโปร่งใสแบบลอย)

ตั้งค่าความโปร่งใสของการวางซ้อนชิ้นส่วนนี้ ดูข้อมูลเพิ่มเติมได้จากเอกสารประกอบที่ด้านบนของชั้นเรียนนี้

พารามิเตอร์
ความโปร่งใส แบบลอยในช่วง [0..1] โดยที่ 0 หมายความว่าการวางซ้อนของชิ้นส่วนสีทึบและ 1 หมายความว่าการวางซ้อนของชิ้นส่วนโปร่งใส

โมฆะสาธารณะ setVisible (boolean visible)

ตั้งค่าการมองเห็นการวางซ้อนของชิ้นส่วนภาพนี้ เมื่อไม่แสดง จะไม่มีการวาดการวางซ้อนของชิ้นส่วนแผนที่แต่จะยังเก็บคุณสมบัติอื่นๆ ทั้งหมดไว้ การวางซ้อนของชิ้นส่วนแผนที่จะแสดงโดยค่าเริ่มต้น

พารามิเตอร์
มองเห็นได้ true เพื่อทำให้การวางซ้อนนี้ปรากฏขึ้น false เพื่อซ่อนตัว

สาธารณะ โมฆะ setZIndex (Float zIndex)

ตั้งค่า zดัชนี ของการวางซ้อนชิ้นส่วนภาพนี้ ดูข้อมูลเพิ่มเติมได้จากเอกสารประกอบที่ด้านบนของชั้นเรียนนี้

พารามิเตอร์
zIndex zIndex ของการวางซ้อนของชิ้นส่วนนี้