กําหนดค่าแผนที่

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

เลือกแพลตฟอร์ม: Android iOS

หัวข้อนี้อธิบายวิธีกําหนดค่าแผนที่ที่เพิ่มลงในแอป iOS โดยใช้ Maps SDK สําหรับ iOS

ภาพรวม

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

การตั้งค่าแผนที่เริ่มต้นมีดังต่อไปนี้

ระหว่างรันไทม์ คุณกําหนดการตั้งค่าเหล่านี้และการตั้งค่าเพิ่มเติมบางอย่างได้โดยอัปเดตออบเจ็กต์ GMSMapView

ประเภทแผนที่

คุณปรับแต่งแผนที่ได้ด้วยแผนที่หลายประเภท ประเภทแผนที่จะควบคุมการแสดงแผนที่โดยรวม ตัวอย่างเช่น แผนที่โลกมักประกอบด้วยแผนที่ทางการเมืองที่เน้นการแสดงขอบเขต และแผนที่ถนนที่แสดงถนนทุกสายของเมืองหรือภูมิภาค Maps SDK สําหรับ iOS มีแผนที่ประเภทต่อไปนี้

ประเภทแผนที่
ปกติ
ค่า: kGMSTypeNormal
แผนการใช้งานโดยทั่วไป แสดงถนน สถานที่บางแห่งสร้างโดยมนุษย์ และลักษณะทางธรรมชาติที่สําคัญ เช่น แม่น้ํา และแสดงป้ายกํากับถนนและฟีเจอร์ด้วย
ไฮบริด
ค่า: kGMSTypeHybrid
ข้อมูลภาพถ่ายดาวเทียมที่มีการเพิ่มแผนปฏิบัติการ และแสดงป้ายกํากับถนนและฟีเจอร์ด้วย
ดาวเทียม
ค่า: kGMSTypeSatellite
ข้อมูลภาพถ่ายดาวเทียม ป้ายกํากับถนนและฟีเจอร์ จะไม่แสดง
ภูมิประเทศ
ค่า: kGMSTypeTerrain
ข้อมูลภูมิประเทศ แผนที่ประกอบด้วยสี เส้นรอบรูปและป้ายกํากับ และการลงสีมุมมอง ถนนและป้ายกํากับบางรายการก็ปรากฏให้เห็นเช่นกัน
ไม่มี
ค่า: kGMSTypeNone
ไม่มีแผนที่แผนที่ ไทล์แผนที่ฐานจะไม่แสดงผล โหมดนี้ใช้ร่วมกับเลเยอร์การ์ด ระบบจะปิดการแสดงข้อมูลการจราจรเมื่อตั้งค่าประเภทแผนที่เป็น ไม่มี

การเปลี่ยนประเภทแผนที่

หากต้องการตั้งค่าประเภทแผนที่ ให้กําหนดค่าใหม่ให้กับพร็อพเพอร์ตี้ GMSMapView.mapType ตัวอย่างเช่น การแสดงประเภทแผนที่ดาวเทียม

Swift

let camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
mapView.mapType = .satellite
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.mapType = kGMSTypeSatellite;
      

ตัวเลือกด้านล่างแสดงการเปรียบเทียบภูมิประเทศ ปกติ และแผนที่แบบผสมสําหรับสถานที่เดียวกัน

แผนที่ในอาคาร

ในระดับการซูมสูง Maps SDK สําหรับ iOS จะแสดงแปลนอาคารสําหรับพื้นที่ในอาคาร เช่น สนามบิน ศูนย์การค้า ร้านค้าปลีกขนาดใหญ่ และสถานีขนส่ง แปลนอาคารในอาคารจะผสานรวมอยู่กับแผนที่แผนที่เริ่มต้นสําหรับประเภทแผนที่ "ปกติ" (kGMSTypeNormal) และจะเปิดใช้งานโดยอัตโนมัติเมื่อผู้ใช้ซูมเข้าและจางลงเมื่อซูมแผนที่ออก

คุณปิดใช้แผนที่ในอาคารได้โดยตั้งค่าพร็อพเพอร์ตี้ indoorEnabled ของ GMSMapView เป็น NO

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

หรือคุณจะปิดใช้เฉพาะตัวควบคุมเครื่องมือเลือกชั้นก็ได้

การเพิ่มแปลนอาคาร

แปลนอาคารมีให้บริการในบางพื้นที่ หากข้อมูลแปลนอาคารไม่พร้อมใช้งานสําหรับอาคารที่คุณต้องการไฮไลต์ในแอปพลิเคชัน คุณจะทําสิ่งต่อไปนี้ได้

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

เลเยอร์การเข้าชม

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

Google Maps แสดงเลเยอร์การจราจร

การช่วยเหลือพิเศษ

โดยค่าเริ่มต้น ระบบจะซ่อนองค์ประกอบการช่วยเหลือพิเศษบนแผนที่ คุณอาจเปิดใช้การเข้าถึงได้โดยตั้งค่าพร็อพเพอร์ตี้ accessibilityElementsHidden ของ GMSMapView เป็น NO เพื่อให้ระบบสร้างองค์ประกอบการช่วยเหลือพิเศษสําหรับออบเจ็กต์การวางซ้อน (เช่น GMSMarker และหน้าต่างข้อมูล GMSPolyline เป็นต้น)

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

พร็อพเพอร์ตี้นี้เป็นไปตามโปรโตคอล UIAccessibility ที่ไม่เป็นทางการ ยกเว้นค่าเริ่มต้นใน Maps SDK สําหรับ iOS คือ YES

ตำแหน่งของฉัน

โดยค่าเริ่มต้น ข้อมูลตําแหน่งจะไม่แสดงบนแผนที่ คุณอาจเปิดใช้จุด "ตําแหน่งของฉัน" สีฟ้าและทิศทางของเข็มทิศด้วยการตั้งค่า myLocationEnabled ใน GMSMapView

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

การเปิดใช้ฟีเจอร์นี้ยังจะระบุตําแหน่งปัจจุบันของผู้ใช้ผ่านพร็อพเพอร์ตี้ myLocation ด้วย พร็อพเพอร์ตี้นี้อาจไม่พร้อมใช้งานทันที เช่น หากผู้ใช้ได้รับข้อความแจ้งโดย iOS ให้อนุญาตการเข้าถึงข้อมูลนี้ ในกรณีนี้ระบบจะมีค่าเป็น

Swift

print("User's location: \(String(describing: mapView.myLocation))")
      

Objective-C

NSLog(@"User's location: %@", mapView.myLocation);
      

สิ่งปลูกสร้าง 3 มิติ

หลายๆ เมืองเมื่อดูแบบใกล้ๆ จะเห็นอาคาร 3 มิติที่มองเห็นได้ในภาพของซีแอตเทิล รัฐวอชิงตันด้านล่างนี้

แผนที่ 3 มิติของอาคารในซีแอตเทิล รัฐวอชิงตัน

คุณปิดใช้อาคาร 3 มิติได้โดยตั้งค่าพร็อพเพอร์ตี้ GMSMapView ที่เกี่ยวข้องใน Swift หรือ Objective-C ดังที่แสดงด้านล่าง

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

ระยะห่างจากขอบในแผนที่

Google Maps ออกแบบมาเพื่อเติมเต็มภูมิภาคทั้งหมดที่ GMSMapView กําหนด มิติข้อมูลของการปรากฏและพฤติกรรมบนแผนที่กําหนดโดย มุมมองหลายๆ ด้าน ดังนี้

  • เป้าหมายของกล้องจะสะท้อนให้เห็นถึงกึ่งกลางของส่วนที่หุ้มเบาะ
  • ตัวควบคุมแผนที่จะอยู่ในตําแหน่งที่เกี่ยวข้องกับขอบของแผนที่
  • ข้อมูลทางกฎหมาย เช่น คําชี้แจงลิขสิทธิ์ หรือโลโก้ Google จะปรากฏ ที่ขอบด้านล่างของแผนที่

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

  • การเคลื่อนไหวของกล้องผ่านการเรียก API หรือการกดปุ่ม (เช่น เข็มทิศ ตําแหน่งของฉัน) จะสัมพันธ์กับภูมิภาคที่หุ้มเบาะ
  • GMSMapView.projection จะแสดงผลการคาดการณ์ที่มีเฉพาะภูมิภาคที่เพิ่มแล้ว
  • การควบคุม UI จะถูกชดเชยจากขอบของคอนเทนเนอร์ตามจํานวนจุดที่ระบุ

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

ระยะห่างจากแผนที่

หากต้องการเพิ่มระยะห่างจากขอบลงในแผนที่ ให้สร้างออบเจ็กต์ UIEdgeInsets แล้วส่งไปยัง GMSMapViewพร็อพเพอร์ตี้ padding

Swift

// Insets are specified in this order: top, left, bottom, right
let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0)
mapView.padding = mapInsets
      

Objective-C

// Insets are specified in this order: top, left, bottom, right
UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0);
mapView.padding = mapInsets;