Intereting Posts
Отображение UISplitViewControllerModeButtonItem в iPAD Поверните MKMapCamera вокруг определенной точки в MKMapView, а не в центре iOS: Stop ScrollView из комнаты при выборе текстового поля наверху Пользовательский UITableViewCell: программный запуск выбора segue Как центрировать этикетку горизонтально для всех устройств iOS в Swift Быстрый программный заставку Всякий раз, когда я использую UIWebView loadHTMLString, это scrollView.contentOffset.y превращается в 0 iOS-Как показать alertView перед запуском кода получить push-уведомление, не нажимая на alertview save Захват сеанса в каталоге документов с помощью swift с помощью avfoundation с устройства Как установить цвет строки состояния так же, как и цвет панели навигации в iOs 7, используя Xcode 4.2 iTunes: связать транзакцию с электронной почтой от пользователя Пытаясь использовать protobuf-net с предварительно выделенными объектами Тестеры бета-тестирования Testflight не получат почтовые рассылки? Как загрузить изображение из UIImagePicker с альфой

Как разместить аннотации СЛУЧАЙНО в Mapkit Swift

Я хочу знать Как скопировать 15 аннотаций Случайно в MapView

let latitude: CLLocationDegrees = 33.606800 let longitude: CLLocationDegrees = -111.845360 let location:CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude) //map annotation let annotation = MKPointAnnotation() annotation.coordinate = location annotation.title = "Taliesin West" annotation.subtitle = "Design" map.addAnnotation(annotation) 

Для тех, кто хочет решения:

Во-первых: добавление случайной аннотации в соответствии с текущим местоположением

Создание аннотаций:

 func generateAnnoLoc() { var num = 0 //First we declare While to repeat adding Annotation while num != 15 { num += 1 //Add Annotation let annotation = MKPointAnnotation() annotation.coordinate = generateRandomCoordinates(70, max: 150) //this will be the maximum and minimum distance of the annotation from the current Location (Meters) annotation.title = "Annotation Title" annotation.subtitle = "SubTitle" mapView.addAnnotation(annotation) } } 

Создание координат:

 func generateRandomCoordinates(min: UInt32, max: UInt32)-> CLLocationCoordinate2D { //Get the Current Location's longitude and latitude let currentLong = currentLoc.coordinate.longitude let currentLat = currentLoc.coordinate.latitude //1 KiloMeter = 0.00900900900901° So, 1 Meter = 0.00900900900901 / 1000 let meterCord = 0.00900900900901 / 1000 //Generate random Meters between the maximum and minimum Meters let randomMeters = UInt(arc4random_uniform(max) + min) //then Generating Random numbers for different Methods let randomPM = arc4random_uniform(6) //Then we convert the distance in meters to coordinates by Multiplying number of meters with 1 Meter Coordinate let metersCordN = meterCord * Double(randomMeters) //here we generate the last Coordinates if randomPM == 0 { return CLLocationCoordinate2D(latitude: currentLat + metersCordN, longitude: currentLong + metersCordN) }else if randomPM == 1 { return CLLocationCoordinate2D(latitude: currentLat - metersCordN, longitude: currentLong - metersCordN) }else if randomPM == 2 { return CLLocationCoordinate2D(latitude: currentLat + metersCordN, longitude: currentLong - metersCordN) }else if randomPM == 3 { return CLLocationCoordinate2D(latitude: currentLat - metersCordN, longitude: currentLong + metersCordN) }else if randomPM == 4 { return CLLocationCoordinate2D(latitude: currentLat, longitude: currentLong - metersCordN) }else { return CLLocationCoordinate2D(latitude: currentLat - metersCordN, longitude: currentLong) } } 

Второе: добавление случайной аннотации на всю землю

Код erdekhayser для получения случайного числа с плавающей запятой

 func randomBetweenNumbers(firstNum: CGFloat, secondNum: CGFloat) -> CGFloat{ return CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)} 

И затем Calling:

  func generateAnnoLoc() { var num = 0 //First we declare While to repeat adding Annotation while num != 15 { num += 1 //Add Annotation let annotation = MKPointAnnotation() annotation.coordinate = CLLocationCoordinate2D(latitude: CLLocationDegrees(randomBetweenNumbers(-90, secondNum: 90)), longitude: CLLocationDegrees(randomBetweenNumbers(-180, secondNum: 180))) //-180 is the minimum of longitude and 180 is the maximum //-90 is the minimum of latitude and 90 is the maximum annotation.title = "Annotation Title" annotation.subtitle = "SubTitle" mapView.addAnnotation(annotation) } } 

В-третьих: добавление случайной аннотации в конкретной стране

Вам нужно только поле Bounding в стране или городе. Вы можете найти его здесь.

это породит случайные координаты в Египте:

 CLLocationCoordinate2D(latitude: CLLocationDegrees(randomBetweenNumbers(22, secondNum: 24.698099)), longitude: CLLocationDegrees(randomBetweenNumbers(31.674179, secondNum: 36.89468))) 

Благодаря,,

Вы можете использовать случайные двойные значения между значениями координат в земле, например:

 do{ let latitude: CLLocationDegrees = randomLatitude() let longitude: CLLocationDegrees = randomLongtitude() let location: CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longtitude) annotation = MKPointAnnotation() annotation.coordinate = location map.addAnnotation(annotation) }while count == 15 

PS Случайное значение для быстрого вы можете посмотреть на это