Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Tài liệu này mô tả cách bạn có thể quản lý các lựa chọn ưu tiên về điểm đánh dấu cho ứng dụng của mình bằng cách sử dụng 2 tính năng:
Lựa chọn ưu tiên về định tuyến theo bên đường
Quá cảnh
Đặt lựa chọn ưu tiên về hướng đi trên đường
Theo mặc định, Navigation SDK cho iOS sẽ tìm tuyến đường nhanh nhất đến một điểm tham chiếu, tuy nhiên, điều này không đảm bảo rằng người dùng sẽ đến được phía đường mong muốn, chẳng hạn như phía đường mà khách hàng của người lái xe đi chung đang chờ. Tính năng Lựa chọn ưu tiên về hướng đi trên đường giúp bạn đảm bảo xe đến đúng bên đường.
Cách hoạt động
Bạn đặt lựa chọn ưu tiên cho việc đến một bên đường cụ thể khi tạo điểm tham chiếu cho điểm dừng đó. Bạn có thể chỉ định lựa chọn ưu tiên theo một trong hai cách.
Ưu tiên đi cùng một bên đường
Bạn cung cấp toạ độ địa lý của điểm tham chiếu, sau đó đặt một cờ preferSameSideOfRoad cho biết rằng bạn muốn đến cùng một bên đường với điểm tham chiếu – được điều chỉnh cho khớp với vỉa hè gần nhất.
Bạn cung cấp toạ độ địa lý của điểm tham chiếu, sau đó cung cấp hướng đến preferredSegmentHeading trùng khớp với hướng lưu lượng truy cập ở cùng một bên đường với đích đến.
Navigation SDK sẽ chọn đoạn đường gần điểm tham chiếu nhất, có hướng làn đường phù hợp (trong phạm vi +/- 55 độ) với phía đường mà điểm tham chiếu nằm trên đó.
Đặt lựa chọn ưu tiên về điểm dừng
Ở một số nơi, người dùng không thể dừng xe một cách an toàn (ví dụ: khu vực trên cao, phà, địa điểm dưới lòng đất và những khu vực khác có hạn chế về việc tiếp cận). Tính năng Điểm dừng sẽ di chuyển điểm đánh dấu đến một địa điểm gần đó nếu vị trí của điểm đánh dấu đó không phù hợp để người dùng dừng chân. Khi bạn đặt vehicleStopover thành YES, điểm đánh dấu sẽ tự động được di chuyển khi tuyến đường được tính toán, nếu có vị trí thay thế.
Cách hoạt động
Bạn đặt lựa chọn ưu tiên cho điểm dừng chân khi tạo điểm tham chiếu cho điểm dừng đó.
Để thực hiện việc này, hãy đặt lựa chọn ưu tiên cho một điểm dừng trên GMSNavigationMutableWaypoint như trong ví dụ sau:
Swift
letlocation=CLLocationCoordinate2D(latitude:47.67,longitude:-122.20)letwaypoint=GMSNavigationMutableWaypoint(location:location,title:"waypoint from location")!waypoint.vehicleStopover=truemapView.navigator?.setDestinations([waypoint],routingOptions:routingOptions,callback:{...})
Objective-C
CLLocationCoordinate2Dlocation=CLLocationCoordinate2DMake(47.67,-122.20);GMSNavigationMutableWaypoint*waypoint=[[GMSNavigationMutableWaypointalloc]initWithLocation:locationtitle:@"waypoint from location"];waypoint.vehicleStopover=YES;[_mapView.navigatorsetDestinations:@[waypoint1]routingOptions:routingOptionscallback:^(GMSRouteStatusrouteStatus){...}];
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-09-04 UTC."],[[["\u003cp\u003eThis document explains how to manage waypoint preferences for your app using Side of the Road Routing and Stopover features.\u003c/p\u003e\n"],["\u003cp\u003eSide of the Road Routing ensures arrival on the correct side of the road using \u003ccode\u003epreferSameSideOfRoad\u003c/code\u003e or \u003ccode\u003epreferredSegmentHeading\u003c/code\u003e when creating waypoints.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003epreferSameSideOfRoad\u003c/code\u003e snaps the waypoint to the nearest sidewalk, while \u003ccode\u003epreferredSegmentHeading\u003c/code\u003e aligns the arrival with traffic flow on the desired side of the road.\u003c/p\u003e\n"],["\u003cp\u003eThe Stopover feature automatically relocates waypoints to safe stopping areas when \u003ccode\u003evehicleStopover\u003c/code\u003e is set to \u003ccode\u003eYES\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Manage waypoints\n\nThis document describes how you can manage waypoint preferences for your app\nby using two features:\n\n- Side of the road routing preferences\n- Stopover\n\nSet side of the road routing preference\n---------------------------------------\n\nBy default, the Navigation SDK for iOS finds the quickest route to a\nwaypoint, however this doesn't guarantee that the user will arrive on the\ndesired side of the road, for example, the side of the road that a rideshare\ndriver's customer is waiting on. The **Side of the Road Routing Preference**\nfeature lets you ensure that the vehicle arrives on the correct side of the\nroad.\n\n### How it works\n\nYou set the preference for arriving on a particular side of the road when you\ncreate the waypoint for that stop. You can specify the preference in one of two\nways.\n\n### Prefer the same side of the road\n\nYou provide the geographic coordinates of the waypoint, and then set a flag\n[`preferSameSideOfRoad`](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigationWaypoint#prefersamesideofroad)\nthat indicates that you prefer to arrive on the same side of the road as the\nwaypoint---snapped to the nearest sidewalk. \n\n (nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location\n title:(NSString *)title\n preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;\n\n| **Key Point:** In some situations, when the waypoint is snapped to the side of the nearest road, the nearest road might not be the right one. For example, it might be a road around the corner from a waiting rideshare customer. You can prevent this from occurring by using `preferredSegmentHeading` instead of `preferSameSideOfRoad` (see the next section for details).\n\n### Set an arrival heading\n\nYou provide the geographic coordinates of the waypoint, and then provide an\narrival heading\n[`preferredSegmentHeading`](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigationWaypoint#-initwithlocation:title:preferredsegmentheading:)\nthat matches the direction of traffic flow on the same side of the road as the\ndestination. \n\n (nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location\n title:(NSString *)title\n preferredSegmentHeading:(int32_t)preferredSegmentHeading;\n\nThe Navigation SDK chooses the road segment closest to the\nwaypoint---that has a lane direction that aligns (within +/- 55 degrees) with the\nside of the road that the waypoint is on.\n\nSet stopover preference\n-----------------------\n\nIn certain places, it's not possible for users to stop safely (for example,\nelevated areas, ferries, underground locations, and other areas of limited\naccess). The **Stopover** feature relocates the waypoint to a nearby place if\nits location is not suitable for a user to make a stop. When you set\n`vehicleStopover` to `YES`, the waypoint is automatically relocated when\nthe route is calculated, if an alternate location is available.\n\n### How it works\n\nYou set the preference for a stopover when creating the waypoint for that stop.\nTo do this, set the preference for a stopover on a\n`GMSNavigationMutableWaypoint` as shown in the following example: \n\n### Swift\n\n\n```swift\nlet location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)\nlet waypoint = GMSNavigationMutableWaypoint(location: location, title: \"waypoint from location\")!\nwaypoint.vehicleStopover = true\nmapView.navigator?.setDestinations([waypoint], routingOptions: routingOptions, callback: {...})\n```\n\n\u003cbr /\u003e\n\n### Objective-C\n\n\n```objective-c\nCLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);\nGMSNavigationMutableWaypoint *waypoint =\n [[GMSNavigationMutableWaypoint alloc] initWithLocation:location\n title:@\"waypoint from location\"];\nwaypoint.vehicleStopover = YES;\n[_mapView.navigator setDestinations:@[waypoint1]\n routingOptions:routingOptions\n callback:^(GMSRouteStatus routeStatus){...}];\n```\n\n\u003cbr /\u003e"]]