Създаване на приложение с контролите „Address input“ и „Map“
Има много сценарии, при които се очаква потребителите да въвеждат адреси в приложение. Исторически е имало множество полета, улавящи всеки елемент от адрес, където потребителят предоставя адрес, град и пощенски код и избира държава. Въвеждането на адреси може да бъде разочароващо и податливо на грешки, особено при мобилни сценарии.
Контролът за въвеждане на адреси представя на потребителя динамични предложения за адреси, докато той въвежда. Използвайки размита логика на съвпадение, контролът предлага множество потенциални съвпадения на адреси, от които потребителят може да избере—което ускорява и улеснява въвеждането на точни адреси.
Контролът връща адреса като структурирани данни, което позволява на приложението да извлече информация като град, улица, община и дори географска ширина и дължина. Данните са във формат, подходящ за много локали и международни формати на адреси.
За да използвате контрола, трябва да разрешите геопространствените услуги за средата.
Гледайте този видеоклип, за да научите как се използва контролът за въвеждане на адрес:
Гледайте този видеоклип, за да научите как се използва контролът на картата:
В тази статия ще научим как да използваме контролата за въвеждане на адреси в приложенията за платно.
Предварителни изисквания
За да завършите този урок, ще ви е необходима среда на Power Apps с база данни Microsoft Dataverse. Ако не разполагате с лиценз, можете да се регистрирате за План за разработчици за Power Apps или да използвате Пробна версия на Power Apps.
Създаване на пробна среда
Средата в Power Apps представлява място за съхранение, управление и споделяне на бизнес данните, приложенията, чатботовете и потоците на организацията. Тя също така служи като контейнер за отделни приложения, които могат да имат различни роли, изисквания за защита или целеви аудитории.
Всяка среда може да има една база данни на Dataverse.
За да сме сигурни, че имате всичко необходимо за завършване на този урок, ние ще създадем нова среда, която включва Dataverse база данни. Това е 30-дневен пробен период, който ще изчезне в края на 30-те дни, но можете да го надстроите до пясъчник или производствена среда, ако искате да го запазите.
Ще създадем пробна среда, която ще включва Dataverse база данни и примерните данни, използвани в тази тема.
Отидете в административен център на Power Platform в уеб браузър.
Изберете Среди.
Изберете Нова.
Въведете име, например „Пробна версия на Dataverse”.
Изберете Пробна версия за типа среда.
Превключете Създаване на база данни на Да.
Изберете Напред.
Превключете Внедряване на примерни приложения и данни на Да.
Изберете Записване.
Вашата пробна среда вече ще бъде създадена, включително Dataverse база данни и примерни данни в таблици на Dataverse.
Активиране на геопространствените услуги за средата
Преди да можем да използваме геопространствените услуги в приложенията за платно, администраторът трябва да разреши достъпа до функциите за средата, в която искаме да създадем приложението.
За да научите как да активирате Геопространствени услуги във вашата среда, вижте Активирайте геопространствените функции за среда.
Изграждане на приложение за платно
Ще започнем със създаването на приложение и след това ще създадем контрола за заглавка, която да използваме в приложението, за да стандартизираме външния вид и усещането на заглавката на различни екрани.
Създайте празно приложение за платно в средата, която създадохте по-рано.
Изберете Вмъкване > Нов екран > Може да се превърта, за да добавите нов екран.
Променете текста на етикета на „Нов акаунт“.
Изберете Поставете > Форми > редактиране, за да добавите формуляр към екрана.
Добавя се контролата на формуляра
Актуализирайте следните свойства на формуляра:
Свойство Стойност Източник на данни Клиенти Колони 2 DefaultMode FormMode.New
Изберете Редактиране до полетата, за да добавите още полета към формуляра, и изберете следните адресни полета:
- Адрес 1: Улица 1
- Адрес 1: Град
- Адрес 1: Щат
- Адрес 1: Пощенски код
- Адрес 1: Страна/Регион
- Адрес 1: Географска ширина
- Адрес 1: Географска ширина
Регулирайте реда на полетата, както е показано по-долу.
Управление на въвеждането на адрес
В този раздел ще добавим Въвеждане на адрес контрола към приложението.
Изберете Вмъкване > Въвеждане > Въвеждане на адрес, за да добавите контрола към екрана.
Преместете контролния елемент в горния десен ъгъл на екрана.
Конфигуриране на свойствата на контролата за въвеждане на адрес
В този раздел ще прегледаме и ако е необходимо ще зададем различни свойства на контролата на адреса. Има няколко специфични за контрола Въвеждане на адрес свойства.
Свойство | Описание |
---|---|
Ограничение на резултатите от търсенето | Броят на предложените адреси, който показва контролата. В този пример сме го задали на 5, така че не повече от пет адреса ще се показват при търсене. |
Търсене в радиус | Дали контролата трябва да предлага адреси в рамките на дефинирания от потребителя радиус от Географска ширина и Географска дължина. Настроили сме го на да в този пример. |
Географска ширина | Географската ширина на централната точка, използвана за гео-пристрастия към адреси за предложения. Изисква Търсене в радиус да е включено. Настроихме го на формулата Location.Latitude в този пример, за да върнете географската ширина на текущото местоположение. |
Географска дължина | Географската дължина на централната точка, използвана за гео-пристрастия към адреси за предложения. Изисква Търсене в радиус да е включено. Настроихме го на формулата Location.Longitude в този пример, за да върнете географската ширина на текущото местоположение. |
Радиус | Радиусът, в метри, около Географска ширина и Географска дължина за ограничаване на предложенията за адрес. Изисква Търсене в радиус да е включено. Настроили сме го на 100 000 в този пример. |
Език | Езикът, на който се връщат предложенията за адрес. Оставили сме го по подразбиране - "Английски (САЩ)". |
Набор от държави | Списък на страни/региони, разделени със запетая, за да се ограничат предложенията за адреси в кодовете на държавите по ISO 3166 alpha-2. Примери: "US", "FR", "KW". Настроили сме го на US в този пример. |
Конфигуриране на изходните свойства на контролата за въвеждане на адрес
Контролата извежда различни свойства, когато потребителят взаимодейства с него в приложение. Можете да използвате тези изходи в други контроли или да персонализирате функционалността.
Следващата таблица изброява наличните свойства на изведения резултат.
Свойство | Описание |
---|---|
UserInput | Текст, който потребителят е въвел в полето за въвеждане. |
SelectedLatitude | Географска ширина на избрания от потребителя адрес в полето за въвеждане. |
SelectedLongitude | Географска дължина на избрания от потребителя адрес в полето за въвеждане. |
SearchResultJson | Резултатът от търсенето (въз основа на свойството UserInput), показан като низ в JSON формат. |
FreeformAddress | Избран адрес от списъка с предложени адреси. |
LocalName | Адресна контрола , която представлява името на географска област или населено място, което групира множество адресируеми обекти за адресиране, без да е административна единица. |
PostalCode | Пощенски код. |
ExtendedPostalCode | Разширен пощенски код. |
CountryCode | Код на държава. |
Държава | Държава. |
CountryCodeISO3 | Код на държавата във формат ISO alpha-3. |
CountrySubdivisionName | Име на подразделение на държавата. |
StreetName | Име на улица. |
StreetNumber | Номер на улица. |
Община | Община. |
MunicipalitySubdivision | Общинско подразделение. |
CountryTertiarySubdivision | Третично подразделение на държавата. |
CountrySecondarySubdivision | Вторично подразделение на държавата. |
CountrySubdivision | Подразделение на държавата. |
Когато стартирате приложението и започнете да въвеждате адрес, то ще покаже адреси, които отговарят на въведената стойност и се намират само в рамките на 100 000 метра от текущото местоположение. Освен това забележете, че не показва повече от пет предложения за адрес наведнъж, когато започнете да въвеждате адреса.
Използвайки горната контрола, ще заснемем адреса в адресните полета на формуляра, за да създадем нов акаунт. Тази стъпка е полезна, за да не се налага потребителят да въвежда всеки от адресните елементи поотделно.
Ще зададем стойностите на картата с данни на подходящата стойност на свойството от въвеждането на адреса.
Съвет
Стойностите по подразбиране на картата с данни може да са заключени. За да ги отключите, изберете картата с данни и отидете в Разширени свойства, след което изберете Отключване, за да промените свойствата.
Карта за данни | Стойност |
---|---|
Адрес 1: Улица 1 | AddressInput1.StreetNumber & " " & AddressInput1.StreetName |
Адрес 1: Град | AddressInput1.Municipality |
Адрес 1: Област/провинция | AddressInput1.CountrySubdivision |
Адрес 1: Пощенски код | AddressInput1.PostalCode |
Адрес 1: Карта с данни за страна/регион | AddressInput1.Country |
Адрес 1: Географска ширина | AddressInput1.SelectedLatitude |
Адрес 1: Географска ширина | AddressInput1.SelectedLongitude |
Пример за Адрес 1: улица 1 карта с данни:
Формулярът се попълва с всички адресни полета, когато е избран адрес в контролата Въвеждане на адрес.
Контрола на карта
В този раздел ще видим как да добавим контрола Карта в приложението, за да покаже избраното местоположение на картата.
Преди да добавите Карта контрол, трябва да създадем колекция за улавяне на адреса от входния адрес – тази колекция ще се използва като източник на данни за картата.
В свойството OnAddressSelect на контролата Въвеждане на адрес въведете следната формула, за да създадете колекция, която улавя адресните данни.
ClearCollect( colSelectedAddress, { Street: AddressInput1.StreetNumber & " " & AddressInput1.StreetName, City: AddressInput1.Municipality, State: AddressInput1.CountrySubdivision, Zip: AddressInput1.PostalCode, Country: AddressInput1.Country, Latitude: AddressInput1.SelectedLatitude, Longitude: AddressInput1.SelectedLongitude } )
Изберете област извън Въвеждане на адрес контролата и изберете Поставете > Мултимедия > Карта за да добавите контрола на картата към екрана.
Изберете колекцията като източник на данни.
Преместете картата под секцията за въвеждане на адрес.
Конфигуриране на свойствата на контролата карта
В този раздел ще прегледаме и ако е необходимо ще зададем различни свойства на контролата на карта.
В следващата таблица са изброени наличните свойства.
Свойство | Описание |
---|---|
Източник на данни (елементи) | Източник на данни (таблицата), която изброява предварително определен набор от дължини и географски ширини, които да се показват като щифт за карта на картата, когато се зареди. Картирайте всяка от колоните в данните си с помощта на ItemAddresses, ItemLongitudes, ItemLatitudes и ItemLabels. |
Използване на местоположение по подразбиране | Дали картата се инициализира на място по подразбиране, зададено от потребителя. |
Географска дължина по подразбиране | Географска дължина, на която картата би отишла, ако се зареди, ако Използвайте местоположение по подразбиране е активирано. |
Географска ширина по подразбиране | Географска ширина, на която картата би отишла, ако се зареди, ако Използвайте местоположение по подразбиране е активирано. |
Ниво на мащабиране по подразбиране | Нивото на мащабиране, на което би била зададена картата, когато се зареди, ако Използвайте местоположение по подразбиране е активирано. |
Показване на текущо местоположение | Дали картата трябва да показва текущото местоположение на потребителя. |
Географска ширина на текущо местоположение | Географската ширина на текущото местоположение на потребителя, ако Показване на текущото местоположение е активирано. |
Географска дължина на текущо местоположение | Географската дължина на текущото местоположение на потребителя, ако Показване на текущото местоположение е активирано. |
Изглед от сателит | Независимо дали стилът на картата е сателитен изглед или изглед на пътя. |
Клъстерни маркери | Дали щифтовете на картата са клъстерирани. |
Контрола за мащабиране | Дали контролът за мащабиране се появява на картата. |
Контрола на компас | Дали контролът на компаса се появява на картата. |
Контрола на стъпка | Дали контролът на височината се появява на картата. |
Цвят на маркер | Цветът на щифтовете. |
ItemsLabels | Колона в елементи с низовете, които искате да използвате като етикети за пиновете. |
ItemsAddresses | Колона в елементи с низовете, които представляват местоположението на пиновете. |
ItemsLongitudes | Име на колоната в таблицата във вашия източник на данни с числа с плаваща запетая, които представляват позицията на дължината на пиновете. |
ItemsLatitudes | Име на колоната в таблицата във вашия източник на данни с числа с плаваща запетая, които представляват позицията на географска ширина на пиновете. |
ItemsColors | Цвят на маркерите. |
ItemsIcons | Икона на маркерите. |
Елементи | Име на таблицата във вашия източник на данни, която съдържа всички записи, които искате да начертаете в картата, като използвате щифтове. Всеки ред трябва да има запис за етикета, дължината и широчината за всеки ред. |
OnMapClick | Как реагира картата, когато се избере някое местоположение. |
OnSelect | Как реагира приложението, когато се избере маркер на картата. |
OnLoad | Как реагира приложението, когато картата завърши зареждането. |
OnItemsChange | Как реагира приложението, когато се променят маркерите на картата. |
Показване на инфокарти | Дали информационните карти се появяват на щифтовете на картата. |
Показване на форми | Дали формите в Shapes_Items се появяват на картата. |
Показване на етикетите на форма | Дали етикетите се появяват на формите на картата. |
Активиране на рисуване на форми | Дали контролата за инструменти за рисуване се появява на картата. |
Активиране на изтриването на форми и редактирането на етикети | Дали фигурите могат да бъдат изтрити и етикетите им могат да бъдат редактирани на картата. |
Shapes_Items | Име на таблицата във вашия източник на данни, която съдържа всички записи с обекти GeoJSON, които искате да покажете на картата като фигури. |
ShapeGeoJSONObjects | Име на колоната в таблицата във вашия източник на данни със низове, които представляват обектите GeoJSON на фигурите. |
ShapeLabels | Колона в Shapes_Items с низовете, които искате да използвате като етикети за фигурите. |
ShapeColors | Цвят на формите. |
OnShapeSelected | Как реагира приложението, когато се избере фигура на картата. |
OnShapeCreated | Как реагира приложението, когато се създаде фигура на картата. |
OnShapeEdited | Как реагира приложението, когато се редактира фигура на картата. |
OnShapeDeleted | Как реагира приложението, когато се изтрие фигура на картата. |
Конфигуриране на изходните свойства за контролата карта
Контролата за карта извежда различни свойства, когато потребителят взаимодейства с него в приложение. Можете да използвате тези изходи в други контроли или да персонализирате функционалността.
Следващата таблица изброява наличните свойства на изведения резултат.
Свойство | Описание |
---|---|
CenterLocation | Централно местоположение на картата е или .Latitude , или .Longitude . Резултатът ще бъде цяло число. Например, обаждане на Map1.CenterLocation.Latitude ще изведе едно цяло число като "47.60357". |
Избрана | Избраният щифт на картата. |
Избрани елементи | Избраният щифт или щифтове на избрания клъстер на картата. |
Геокодирани елементи | Геокодираните местоположения на маркери на картата. |
ClickedLocation | Последно щракнатото местоположение върху картата като или .Latitude , или .Longitude . |
Shapes_Selected | Записът на избраната форма от Shapes_Items. |
Shapes_SelectedItems | Записът на избраните застъпващи се форми от Shapes_Items. |
SelectedShape | Избраната форма на картата с .Perimeter и .Area . |
DeletedShape | Последната изтрита фигура на картата с .Perimeter и .Area . |
GeoJSON | Списъкът с форми на картата във формат Feature Collection GeoJSON. |
За да поставим кабърче върху адреса, въведен във входния адрес, ще използваме колекцията, която създадохме в свойството OnAddressSelect и го използвайте в контролата на картата.
Свойство | Стойност |
---|---|
Елементи | colSelectedAddress |
ItemsLatitudes | colSelectedAddress.Latitude |
ItemsLongitude | colSelectedAddress.Longitude |
Някои от свойствата на щифта могат да бъдат персонализирани за щифт за местоположение са обяснени по-долу:
ItemsColors - За да актуализирате цвета на щифта до различен цвят за всяко местоположение, добавете колона към колекцията Цвят: Червен и използвайте това в свойството ItemsColors на данните на контролата Карта.
ItemsLabels - За да актуализирате етикета на щифта с различен етикет, показващ адреса за всяко местоположение, добавете колона към колекцията Label:AddressInput1.FreeformAddress и я използвайте в свойството за данни ItemsLabels на контролата Карта.
ItemsIcons - За да промените иконата на щифта за всяко местоположение, добавете колона към колекцията и я използвайте в свойството ItemsIcons на данните на контролата Карта. В този пример ще добавим триъгълна икона с формулата като
Icon: triangle
.Съвет
За пълния списък с икони отидете на Списък с шаблони за изображения.
ClearCollect( colSelectedAddress, { Street: AddressInput1.StreetNumber & " " & AddressInput1.StreetName, City: AddressInput1.Municipality, State: AddressInput1.CountrySubdivision, Zip: AddressInput1.PostalCode, Country: AddressInput1.Country, Latitude: AddressInput1.SelectedLatitude, Longitude: AddressInput1.SelectedLongitude, Label: AddressInput1.FreeformAddress, Color: Red, Icon: Triangle } );
След като ги добавите към колекцията, отидете на раздела Разширено на контролата Карта и актуализиране на свойствата ItemsColors, ItemsLabels и ItemsIcons.
Стартирайте приложението в режим на предварителен преглед, за да го тествате. Картата показва местоположението, избрано при въвеждане на адрес, с икона на триъгълник и адресът се показва като етикет на картата.