การอัปเดตกล้อง

ชั้นเรียนสุดท้ายแบบสาธารณะ CameraUpdateFactory ขยายออบเจ็กต์

คลาสที่มีวิธีสร้างวัตถุ CameraUpdate ที่เปลี่ยนกล้องของแผนที่ หากต้องการแก้ไขกล้องของแผนที่ ให้เรียก animateCamera(CameraUpdate), animateCamera(CameraUpdate, GoogleMap.CancelableCallback) หรือ moveCamera(CameraUpdate) โดยใช้ออบเจ็กต์ CameraUpdate ที่สร้างด้วยคลาสนี้

ตัวอย่างเช่น หากต้องการซูมเข้าในแผนที่ คุณสามารถใช้โค้ดต่อไปนี้

GoogleMap map = ...;
 map.animateCamera(CameraUpdateFactory.zoomIn());
 

ก่อนที่จะใช้เมธอดใดๆ จากชั้นเรียนนี้ คุณต้องทำอย่างใดอย่างหนึ่งต่อไปนี้เพื่อให้ เริ่มต้นคลาสนี้:

  • รอให้ GoogleMap พร้อมใช้งานจาก MapFragment หรือ MapView ที่คุณเพิ่มไว้ในแอปพลิเคชัน คุณสามารถขอรับ GoogleMap โดยการเรียก getMapAsync() และรอการเรียกกลับของ onMapReady(GoogleMap map)
  • โทรมาที่ initialize(Context) ตราบใดที่ไม่มีการส่ง GooglePlayServicesNotAvailableException ชั้นเรียนนี้ก็จะทำงานอย่างถูกต้อง ได้เริ่มต้นแล้ว

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

สำหรับข้อมูลเพิ่มเติม โปรดอ่านกล้องและมุมมอง คู่มือนักพัฒนาซอฟต์แวร์

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

คงที่ CameraUpdate
newCameraPosition(ตำแหน่งกล้องCameraPosition)
แสดงผล CameraUpdate ที่ย้ายกล้องไปยัง CameraPosition ที่ระบุ
คงที่ CameraUpdate
newLatLng(LatLng latLng)
แสดง CameraUpdate ที่ย้ายกึ่งกลางของหน้าจอไปยังละติจูดและลองจิจูด ที่ระบุโดยออบเจ็กต์ LatLng
คงที่ CameraUpdate
newLatLngBounds(ขอบเขต LatLngBounds, ความกว้าง Int, ความสูง Int, ระยะห่างจากขอบของ int)
แสดง CameraUpdate ที่เปลี่ยนรูปแบบกล้องตามที่ระบุ ขอบเขตละติจูด/ลองจิจูดจะอยู่กึ่งกลางบนหน้าจอภายในกรอบขอบเขตของขนาดที่ระบุ ที่ระดับการซูมที่ดีที่สุดเท่าที่จะเป็นไปได้
คงที่ CameraUpdate
newLatLngBounds(ขอบเขต LatLngBounds, ระยะห่างจากขอบด้านใน)
แสดง CameraUpdate ที่เปลี่ยนรูปแบบกล้องตามที่ระบุ ขอบเขตละติจูด/ลองจิจูดจะอยู่ตรงกลางของหน้าจอในระดับการซูมที่ดีที่สุดเท่าที่เป็นไปได้
คงที่ CameraUpdate
newLatLngZoom(LatLng latLng, การซูมแบบลอยตัว)
แสดง CameraUpdate ที่ย้ายกึ่งกลางของหน้าจอไปยังละติจูดและลองจิจูด ที่ระบุโดยออบเจ็กต์ LatLng และย้ายไปยังระดับการซูมที่กำหนด
คงที่ CameraUpdate
scrollBy(Flo xPixel, Float yPixel)
แสดง CameraUpdate ที่เลื่อนกล้องไปบนแผนที่ โดยเปลี่ยนจุดศูนย์กลางของ ดูตามจำนวนพิกเซลที่ระบุในทิศทาง x และ y
คงที่ CameraUpdate
zoomBy(จำนวนทศนิยม การเน้นจุด)
แสดงผล CameraUpdate ที่เลื่อนระดับการซูมของมุมมองกล้องปัจจุบัน
คงที่ CameraUpdate
zoomBy(จำนวนทศนิยม)
แสดงผล CameraUpdate ที่เลื่อนระดับการซูมของมุมมองกล้องปัจจุบัน
คงที่ CameraUpdate
zoomIn()
แสดงค่า CameraUpdate ที่ซูมเข้าในแผนที่โดยเลื่อนความสูงของมุมมองให้ใกล้ขึ้น กับพื้นผิวโลก
คงที่ CameraUpdate
zoomOut()
แสดงค่า CameraUpdate ที่ซูมออกในแผนที่โดยการย้ายความสูงของมุมมอง ที่อยู่ห่างจากพื้นผิวโลก
คงที่ CameraUpdate
zoomTo(ซูมแบบลอย)
แสดงผล CameraUpdate ที่ย้ายมุมมองของกล้องไปยังระดับการซูมที่ต้องการ

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

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

สาธารณะ คงที่ CameraUpdate newCameraPosition (CameraPositionตำแหน่งกล้อง)

แสดงผล CameraUpdate ที่ย้ายกล้องไปยัง CameraPosition ที่ระบุ ใน ซึ่งจะสร้างการแปลงจากละติจูดของวัตถุ CameraPosition ลองจิจูด ระดับการซูม ทิศทางการเอียง และการเอียง

พารามิเตอร์
cameraPosition
การคืนสินค้า
  • CameraUpdate ที่มีการเปลี่ยนรูปแบบ

สาธารณะ คงที่ CameraUpdate newLatLng (LatLngละติจูด)

แสดง CameraUpdate ที่ย้ายกึ่งกลางของหน้าจอไปยังละติจูดและลองจิจูด ที่ระบุโดยออบเจ็กต์ LatLng การดำเนินการนี้จะตั้งศูนย์กลางกล้องไว้ที่วัตถุ LatLng

พารามิเตอร์
latLng ออบเจ็กต์ LatLng ที่มีละติจูดและลองจิจูดที่ต้องการ
การคืนสินค้า
  • CameraUpdate ที่มีการเปลี่ยนรูปแบบ

สาธารณะ คงที่ CameraUpdate newLatLngBounds (LatLngBounds ขอบเขต, ความกว้าง int, ความสูง, ระยะห่างจากขอบของ int)

แสดง CameraUpdate ที่เปลี่ยนรูปแบบกล้องตามที่ระบุ ขอบเขตละติจูด/ลองจิจูดจะอยู่กึ่งกลางบนหน้าจอภายในกรอบขอบเขตของขนาดที่ระบุ ที่ระดับการซูมที่ดีที่สุดเท่าที่จะเป็นไปได้ คุณสามารถระบุระยะห่างจากขอบเพิ่มเติมเพื่อจำกัดเพิ่มเติม ขนาดของกรอบล้อมรอบ CameraUpdate ที่แสดงผลมีระยะ 0 และมีการเอียง 0

ซึ่งคุณจะใช้CameraUpdate ได้ ซึ่งต่างจาก newLatLngBounds(LatLngBounds, int) แสดงผลโดยวิธีการนี้เพื่อเปลี่ยนกล้องก่อนขั้นตอนการจัดวางของแผนที่ เนื่องจาก อาร์กิวเมนต์จะระบุขนาดที่ต้องการของกรอบล้อมรอบ

พารามิเตอร์
ขอบเขต ด้านที่พอดีกับกรอบล้อมรอบ
ความกว้าง ความกว้างของกรอบพื้นที่เป็นพิกเซล (px)
ส่วนสูง ความสูงของกล่องที่ล้อมรอบในหน่วยพิกเซล (px)
padding การจำกัดขนาดเพิ่มเติม (เป็นพิกเซล) ของกรอบล้อมรอบ
การคืนสินค้า
  • CameraUpdate ที่มีการเปลี่ยนรูปแบบ

สาธารณะ คงที่ CameraUpdate newLatLngBounds (LatLngBounds, ระยะห่างจากขอบภายใน)

แสดง CameraUpdate ที่เปลี่ยนรูปแบบกล้องตามที่ระบุ ขอบเขตละติจูด/ลองจิจูดจะอยู่ตรงกลางของหน้าจอในระดับการซูมที่ดีที่สุดเท่าที่เป็นไปได้ คุณสามารถ ระบุระยะห่างจากขอบ เพื่อใส่กรอบจากขอบของมุมมองแผนที่ ผลลัพธ์ CameraUpdate มีทิศทางเป็น 0 และการเอียงเป็น 0

ห้ามเปลี่ยนกล้องหลังจากอัปเดตกล้องนี้จนกว่าแผนที่ผ่านการปรับสภาพ (ใน เพื่อให้วิธีการนี้ระบุกรอบล้อมรอบและระดับการซูมที่เหมาะสมได้อย่างถูกต้อง แผนที่ต้องมีขนาด) ไม่เช่นนั้นระบบจะส่ง IllegalStateException ไม่ใช่ เพียงพอสำหรับแผนที่พร้อมใช้งาน มุมมองที่มีแผนที่จะต้อง จนถึงขนาดที่กำหนด หากคุณไม่แน่ใจว่า ให้ใช้ newLatLngBounds(LatLngBounds, int, int, int) แทนและระบุ ของแผนที่ด้วยตัวเอง

พารามิเตอร์
ขอบเขต ขนาดพอดีกับหน้าจอ
padding เว้นวรรค (เป็นพิกเซล) เพื่อออกระหว่างขอบของกรอบและขอบมุมมอง ช่วงเวลานี้ จะใช้กับทั้ง 4 ด้านของกรอบล้อมรอบ
การคืนสินค้า
  • CameraUpdate ที่มีการเปลี่ยนรูปแบบ

สาธารณะ คงที่ CameraUpdate newLatLngZoom (LatLng ละติจูด/ลองจิจูด, การซูมแบบลอยตัว)

แสดง CameraUpdate ที่ย้ายกึ่งกลางของหน้าจอไปยังละติจูดและลองจิจูด ที่ระบุโดยออบเจ็กต์ LatLng และย้ายไปยังระดับการซูมที่กำหนด

พารามิเตอร์
latLng ออบเจ็กต์ LatLng ที่มีละติจูดและลองจิจูดที่ต้องการ
zoom ระดับการซูมที่ต้องการในช่วง 2.0 ถึง 21.0 ค่าที่ต่ำกว่าช่วงนี้คือ จะตั้งค่าเป็น 2.0 และค่าที่มากกว่าคือ 21.0 เพิ่มค่าเพื่อซูมเข้า ไม่ใช่ทั้งหมด จะมีชิ้นส่วนต่างๆ ในระดับการซูมที่ใหญ่ที่สุด
การคืนสินค้า
  • CameraUpdate ที่มีการเปลี่ยนรูปแบบ

สาธารณะ คงที่ CameraUpdate scrollBy (Flo xPixel, Flo yPixel)

แสดง CameraUpdate ที่เลื่อนกล้องไปบนแผนที่ โดยเปลี่ยนจุดศูนย์กลางของ ดูตามจำนวนพิกเซลที่ระบุในทิศทาง x และ y

ตัวอย่าง

  • หาก xPixel = 5 และ yPixel = 0 ระบบจะเลื่อนไปทางขวาด้วยการเลื่อนกล้องเพื่อให้ ดูเหมือนว่าแผนที่เคลื่อนไปทางซ้าย 5 พิกเซล
  • หาก xPixel = 0 และ yPixel = 5 ระบบจะเลื่อนลงโดยย้ายกล้องเพื่อให้ ดูเหมือนจะเคลื่อนไปด้านบน 5 พิกเซล

การเลื่อนจะสัมพันธ์กับการวางแนวปัจจุบันของกล้อง เช่น หากกล้อง ตั้ง 90 องศา จากนั้นทิศตะวันออกคือ "ขึ้น" และการเลื่อนไปทางขวาจะเลื่อนกล้องไปทางทิศใต้

พารามิเตอร์
xPixel จำนวนพิกเซลที่จะเลื่อนในแนวนอน ค่าบวกจะย้ายกล้องไปที่ ด้านขวาตามการวางแนวในปัจจุบัน ค่าลบจะย้ายกล้องไปที่ ด้านซ้ายตามการวางแนวในปัจจุบัน
yPixel จำนวนพิกเซลที่จะเลื่อนในแนวตั้ง ค่าบวกจะทำให้กล้องขยับ ลงตามการวางแนวในปัจจุบัน ค่าลบทำให้กล้องขยับ ขึ้นตามการวางแนวในปัจจุบัน
การคืนสินค้า
  • CameraUpdate ที่มีการเปลี่ยนรูปแบบ

สาธารณะ คงที่ CameraUpdate zoomBy (จำนวนลอยตัว จุดโฟกัส)

แสดงผล CameraUpdate ที่เลื่อนระดับการซูมของมุมมองกล้องปัจจุบัน

จุดที่ระบุโดยโฟกัสจะยังคงเดิม (นั่นคือจะสัมพันธ์กับละติจูด/ลองจิจูดเดียวกัน) ก่อนและหลังกระบวนการซูม)

วิธีการนี้แตกต่างจาก zoomTo(float) ในส่วนที่การซูมสัมพันธ์กับ กล้อง

ตัวอย่างเช่น หาก LatLng (11.11, 22.22) อยู่ที่ตำแหน่งหน้าจอ (23, 45) หลังจากเรียกใช้วิธีนี้ด้วยจำนวนการซูมและ LatLng นี้ ตำแหน่งหน้าจอ ของ LatLng นี้จะยังคงเป็น (23, 45)

พารามิเตอร์
จำนวนเงิน เพื่อเปลี่ยนระดับการซูม ค่าบวกหมายถึงการซูมเข้าใกล้ พื้นผิวโลกแต่ค่าลบหมายถึงการซูมออกจากพื้นผิว Earth
โฟกัส ตำแหน่งพิกเซลบนหน้าจอที่จะยังคงอยู่หลังจากขั้นตอนการซูม ละติจูด/ลองจิจูดซึ่งอยู่ที่ตำแหน่งพิกเซลดังกล่าวก่อนที่จะย้ายกล้องจะยังคงเดิม หลังจากขยับกล้อง
การคืนสินค้า
  • CameraUpdate ที่มีการเปลี่ยนรูปแบบ

สาธารณะ คงที่ CameraUpdate zoomBy (จำนวนทศนิยม)

แสดงผล CameraUpdate ที่เลื่อนระดับการซูมของมุมมองกล้องปัจจุบัน

วิธีการนี้แตกต่างจาก zoomTo(float) ในส่วนที่การซูมสัมพันธ์กับ กล้อง

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

สาธารณะ คงที่ CameraUpdate zoomIn ()

แสดงค่า CameraUpdate ที่ซูมเข้าในแผนที่โดยเลื่อนความสูงของมุมมองให้ใกล้ขึ้น กับพื้นผิวโลก จำนวนการซูมที่เพิ่มขึ้นคือ 1.0

การคืนสินค้า
  • CameraUpdate ที่มีการเปลี่ยนรูปแบบ

สาธารณะ คงที่ CameraUpdate zoomOut ()

แสดงค่า CameraUpdate ที่ซูมออกในแผนที่โดยการย้ายความสูงของมุมมอง ที่อยู่ห่างจากพื้นผิวโลก ระดับการซูมที่เพิ่มขึ้นคือ -1.0

การคืนสินค้า
  • CameraUpdate ที่มีการเปลี่ยนรูปแบบ

สาธารณะ คงที่ CameraUpdate zoomTo (ซูมแบบลอย)

แสดงผล CameraUpdate ที่ย้ายมุมมองของกล้องไปยังระดับการซูมที่ต้องการ

พารามิเตอร์
zoom ระดับการซูมที่ต้องการในช่วง 2.0 ถึง 21.0 ค่าที่ต่ำกว่าช่วงนี้คือ จะตั้งค่าเป็น 2.0 และค่าที่มากกว่าคือ 21.0 เพิ่มค่าเพื่อซูมเข้า ไม่ใช่ทั้งหมด จะมีชิ้นส่วนต่างๆ ในระดับการซูมที่ใหญ่ที่สุด