Как к прослушиванию MKAnnotationView программно? (iPhone, MapKit)

  1. Вы хотите знать, когда триггер установлен ScriptApp.newTrigger(), какая версия скрипта используется.
  2. Вы хотите узнать способ установки триггера, выбрав версию скрипта.
  3. Я понимаю ваш вопрос, как указано выше. Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких ответов.

    Ответ на вопрос Q1:

    • Когда триггер установлен ScriptApp.newTrigger(), хотя значение «Развертывание» не отображается в «Триггерах текущего проекта», последний сценарий запустить установленным триггером. Эта ситуация не зависит от версии скрипта. Используется текущий последний скрипт.

    • Если триггер установлен вручную, вы можете выбрать версию развертывания в «Выберите, какое развертывание должно выполняться».

      • К сожалению, на данном этапе это еще не может быть достигнуто сценарием. Я думаю, что это может быть достигнуто будущим обновлением.

    Ответ на вопрос 2:

    Чтобы установить триггер, выбрав версию сценария в качестве обходного пути, я хотел бы предложить использовать библиотеку. Ход этого обходного пути заключается в следующем. Это образец потока.

    1. Создать 2 автономных проекта.
      • Один используется в качестве библиотеки.
      • Другой используется в качестве проекта для использования библиотеки.
    2. В проекте использовать библиотеку, например, function myFunction() {lib.myFunction()}. Этот скрипт выполняет функцию библиотеки.
      • Установите библиотеку для этого проекта.
      • Вы можете выбрать скрипт, который вы хотите запустить для пользователей, выбрав версию библиотеки.
      • Триггер установлен в этом проекте.
    3. Проект библиотеки - это проект для развития. Он управляет версией развивающегося скрипта с помощью «Manage version» редактора скриптов.
    4. Когда триггер установлен, он запускает ScriptApp.newTrigger("myFunction") в проекте для использования библиотеки. В это время при запуске триггера используется выбранная версия библиотеки. При этом последний скрипт библиотеки не используется. Пользователи могут использовать стабильный скрипт выбранной вами версии.

    Примечание:

    • Вы также можете увидеть версию библиотеки в файле манифестов (appsscript.json). Этот файл может быть изменен скриптом. Этим вы также можете изменить версию скрипта, используемую скриптом триггером.

    Ссылки:

    Если я неправильно понимаю вашу вопрос, извините.

26
задан NANNAV 1 June 2013 в 12:49
поделиться

2 ответа

Создайте в mapViewController метод действия:

- (void)openAnnotation:(id)annotation 
{
    //mv is the mapView
    [mv selectAnnotation:annotation animated:YES];

}

Затем вы можете определить ближайшую аннотацию на основе текущего местоположения и просмотра аннотаций, доступных в массиве.

[mv annotations];

После вычисления ближайшей аннотации вызовите:

[self openAnnotation:closestAnnotation];

MapView должен автоматически прокрутить, чтобы разместить аннотацию в центре области отображения.

78
ответ дан 28 November 2019 в 06:17
поделиться

В swift 3 это обновлено до:

func openAnnotation(annotation: MkAnnotation) {
_ = [mapView .selectAnnotation(annotation, animated: true)]
}

и может быть вызвано с использованием любой аннотации (это откроет представление выноски аннотации и попытается центрировать аннотацию на карте)

Например, используя вторую аннотацию в гипотетическом списке аннотаций.

openAnnotation(annotation: mapView.annotations[1])
1
ответ дан S. Doe 28 November 2019 в 06:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: