 		}
 
 		let optionMenu = UIAlertController(title: nil, message: optionMenuMessage, preferredStyle: .actionSheet)
+
+        if let popoverPresentationController = optionMenu.popoverPresentationController {
+            let width = mapEntry.CGTapRadius, height = mapEntry.CGTapRadius
+            let left = mapEntry.CGLocation.x - width / 2
+            let top = mapEntry.CGLocation.y - height / 2
+            let sourceRect = CGRect(x: left, y: top, width: width, height: height)
+
+            popoverPresentationController.sourceRect = sourceRect
+            popoverPresentationController.sourceView = mapView
+        }
 
 		var lastActionableLink: LinkFragment?
 		for link in mapEntryLinks {

			if let link = nearestMapEntry.Links.first, nearestMapEntry.Links.count == 1 {
				performLinkFragmentAction(for: link)
			} else {
				showMapEntryActionSheet(for: nearestMapEntry.Links)
			}
		}
    }

		}
	}

	func showMapEntryActionSheet(for mapEntry: MapEntry) {
        let mapEntryLinks = mapEntry.Links
		guard mapEntryLinks.count > 0 else { return }

		let firstFragmentType: LinkFragment.LinkFragmentType = mapEntryLinks[0].FragmentType
