2016-08-24 1 views
0

Я использую ArcGIS JavaScript API 4.0, чтобы отображать люки для данной области. Я использую нашу службу ГИС для создания функционального слоя. Однако все связанные фотографии для этого люка должны быть запрошены независимо. Моя мысль заключалась в том, чтобы найти обработчик событий, когда открывается всплывающее окно, а затем каким-то образом запрашивает базу данных для этих фотографий и динамически размещает ссылки в всплывающем шаблоне. Вот проблемы:ArcGis 4.0 События API Javascript, когда всплывающие окна отображаются

  1. Не существует специального обработчика событий, когда открывается всплывающее окно. Только действия, определенные во всплывающем окне.
  2. Даже если бы я мог получить ссылку на люк, который был нажат пользователем?
  3. Как бы я мог динамически добавлять носители под свойством содержимого всплывающего шаблона?

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

view.on("click", function(evt){ 
        console.log("test pop up handler"); 
       }); 

Есть обработчики событий для того, когда добавляется функция слоя и для действий на всплывающем окне. Вот шаблон всплывал мне нужно добавить динамические СМИ:

var manholeTemplate = new PopupTemplate({ 
       title: 'Smoke : {Label}', 
       content: 
       [{ 
        type:"media", 
        mediaInfos: [{ 
         title: "<b> Related Photos </b>", 
         type: "image", 
         value:{ 
           sourceURL: "https://xxxxx.xxxx.getPhoto.php?id=09fsgfsfgE" 
         } 
        }] 
       }] 
      }); 

ответ

2
  1. Используйте watching properties особенности смотреть «view.popup.visible» собственность.

  2. После того, как всплывающее окно открыто, вы можете получить объект (ы), что всплывающее окно, указывающее на использование popup.features

  3. Вы можете использовать имя атрибута внутри фигурных скобок в вашей sourceURL строке и API автоматически получить URL-адрес на основе выбранных атрибутов.

Пример карта показывает выше три элементов здесь (откройте консоль браузера, а затем нажмите на функции): https://jsfiddle.net/gavinr/1jLmfLLL/

+0

ВЫ удивительные !!!! Спасибо, сэр! –

+0

Можете ли вы повторить на 3? Как я могу получить доступ к текущему экземпляру popupTemplate, а затем добавить mediaInfos динамически? Скажем, я хочу добавить 3 фотографии. –