После того, как шаблон веб-приложения был создан, вы можете сделать его настраиваемым. Настраиваемые веб-приложения дают пользователям возможность настраивать внешний вид и поведение приложения. Чтобы сделать шаблон приложения настраиваемым, необходимо выполнить процесс из четырех шагов:
- Создайте шаблон веб-приложения, если вы этого еще не сделали.
- Создайте файл конфигурации, чтобы определить необходимые параметры конфигурации.
- Задайте шаблон, установив свойства конфигурации, и примените их к приложению.
- Свяжите с элементом файл конфигурации для вашего шаблона приложения.
Создайте файл конфигурации
Файл конфигурации представляет собой файл JSON, который задает опции настройки для шаблона приложения. См. пример файла конфигурации.
Примечание:
Рекомендуется запускать JSON через валидатор, например через JSONLint, чтобы убедиться в том, что ваш JSON правильно оформлен и не содержит ошибок.
Этот файл содержит один или несколько разделов, в которых находятся опции по категориям.
Создайте секции, указав для каждой категорию и набор полей.{
"configurationSettings": [
{
"category": "",
"fields": []
}
]
}
Укажите опции конфигурации, используя типы полей, перечисленные в следующей таблице. При создании файла конфигурации убедитесь, что в процессе свойство fieldName является уникальным.
Тип поля | Описание |
---|---|
Параграф | Отображает пояснительный текст в диалоговом окне настройки.
|
Строка | Принимает входной текст. Содержит свойство stringFieldOption, которое определяет тип текстового поля, отображаемого на экране. Значениями являются textbox, textarea и richtext. Опция textbox используется по умолчанию и представляет собой однострочное текстовое поле. Опция textarea представляет собой более крупное текстовое поле для ввода данных. Опция richtext имеет редактор, с помощью которого возможно форматирование текста, например, использование жирного шрифта или курсива. Пример выходных данных |
Логические | Создает отметки для задания значений true или false. Используйте condition, чтобы узнать, имеется ли у карты указанную функциональность. Если карта не удовлетворяет условию, надпись и опция не будут отображаться на панели настройки.
Пример выходных данных
|
Количество | Создает поле, поддерживающее числовые значения. Если поле должно принимать только значения определенного диапазона, то вы можете использовать настройку constraints для ограничения входных данных заданным диапазоном значений или форматом входных значений. Пример выходных данных |
Опции | Создает ниспадающий список с возможностями выбора.
Пример выходных данных
|
Выбор цветов | Отображает окно выбора цвета из палитры, где также можно или ввести значения hex, rgb или hsv.
Пример выходных данных
|
Диалог Веб-карта | Отображает диалоговое окно выбора или поиска новой карты для приложения. По желанию укажите условие для тестирования карты. Если указанное условие не удовлетворяется, на панели настройки появится сообщение о проверке, подтверждающее, что карта не соответствует необходимым требованиям. Строки о корректных условиях следующие:
Пример выходных данных
|
Диалог Группа | Отображает диалоговое окно выбора или поиска новой группы для приложения.
Пример выходных данных
|
Несколько слоев и Выбор поля | Представляет в виде дерева слои и поля карты, которые соответствуют поддерживаемым типам и типам геометрии. Позволяет конечным пользователям приложения выбирать несколько слоев и несколько полей в каждом слое.
Пример выходных данных
|
Выбор слоев и полей | Отображает ниспадающий список слоев карты, отфильтрованный по типам и геометрии. Дополнительно укажите один или несколько полей для выбора, что позволит пользователям выбирать слой и поля.
Пример выходных данных
|
Радио | Создает зависимый переключатель, когда в каждый момент времени может быть выбрана только одна опция. Для выбранной опции будет задано значение true (правда).
Пример выходных данных
|
Баз. карты | Отображает ниспадающий список всех именованных базовых карт Esri.
Пример выходных данных
|
Условия | Отображает или скрывает ресурсы в зависимости от условия true или false. Например, если опция Показать список слоев отключена, список слоев и связанные опции (например, включить подслои в список слоев) скрыты.
|
Поиск | Настраивает панель поиска для нахождения объектов в поле слоя объектов или адресов с помощью локатора. Если настроен поиск объектов, пользователи могут выбрать слой объектов и поля для поиска.
Пример выходных данных |
ScaleList | Отображает список заданных масштабов, из которого пользователь может выбрать подходящий. Например, Страны, Штаты, Штат, Округа, Округ, Городская область, Город, Город, Район.
Пример результата
|
Пример файла конфигурации
Ниже приводится пример готового файла конфигурации:
{
"configurationSettings": [ {
"category": "General Settings", "fields": [ {
"type": "options", "fieldName": "theme", "tooltip": "Color theme to use", "label": "Color Scheme:", "options": [ {
"label": "Blue", "value": "blue"
}, {
"label": "Green", "value": "green"
}, {
"label": "Orange", "value": "orange"
}
] }, {
"type": "string", "fieldName": "layer", "label": "Analysis Layer", "tooltip": "Feature Layer with Facilities to search"
}, {
"type": "string", "fieldName": "orgname", "label": "Organization Name:", "tooltip": "", "stringFieldOption": "richtext", "placeHolder": "Organization Name"
}, {
"type": "number", "fieldName": "bufferdistance", "label": "Search Distance (miles)", "value": "1"
}
] }
], "values": {
"theme": "orange", "bufferdistance": 1 }
}
Настройка шаблона для считывания информации файла конфигурации
Чтобы сделать приложение настраиваемым, то необходимо будет принять идентификатор элемента для картографического веб-приложения как значение для параметра appid URL-адреса. Этот идентификатор используется при асинхронном запросе для получения свойств конфигурации для приложения. В ArcGIS API for JavaScript для получения информации о конфигурации приложения можно использовать esri.request.
В данном примере esri.arcgis.utils.arcgisUrl решен как www.arcgis.com/sharing/content/items.
var requestHandle = esri.request({
url: esri.arcgis.utils.arcgisUrl + "/" + appid + "/data",
content: {
f: "json"
},
callbackParamName: "callback",
load: function (response) {
for (var key in response.values){
if(response.values[key]!==undefined)configOptions[key]=response.values[key];
}
},
});
Ответ будет содержать изменения, которые пользователь внес в приложение при помощи панели настройки. Получив эти изменения, вы можете применить их к приложению. Приложение должно определить значения по умолчанию для опций конфигурации, чтобы оно могло работать и в таких ситуациях, когда шаблон не сконфигурирован.
{
"source": "15a34e2c161b4364860854fbc84262c5", "folderId": "5705faa4594a4fd09edf01742c16e523", "values": {
"webmap": "32f1438789d34b5e8125f0f7c64b8d63", "layer":"https://sampleserver6.arcgisonline.com/arcgis/rest/services/Water_Network/MapServer/2", "theme": "green", "orgname": "Water Points", "bufferdistance": 3 }
}
Связывание информации файла конфигурации с элементом для шаблона приложения
Когда файл конфигурации будет создан, вы можете связать его со своим пользовательским шаблоном приложения и сделать приложение настраиваемым.
- Если это еще не сделано, добавьте шаблон как новый элемент приложения.
- На странице элемента приложения щелкните вкладку Настройки и найдите раздел Картографическое веб-приложение.
- В ниспадающем меню Назначение выберите Настраиваемый.
- В поле Параметры конфигурации введите код JSON из файла конфигурации.
Примечание:
Для поля Параметры конфигурации требуется допустимый JSON. Рекомендуется запускать JSON через валидатор, например – через JSONLint, чтобы убедиться в том, что ваш JSON правильно оформлен и не содержит ошибок.
- Щелкните Сохранить, чтобы сохранить свои настройки приложения.
Если вы хотите использовать настраиваемый шаблон в галерее приложений Map Viewer Classic вашей организации или в галерее приложений группы, сделайте его доступным для группы, которая использует эту галерею приложений. Тогда администратор вашей организации сможет настроить карту или настроить группы, чтобы использовать группу, содержащую ваш шаблон.