Отображение сведений о компонентеDisplay feature information

Пространственные данные часто представляются с помощью точек, линий и многоугольников.Spatial data is often represented using points, lines, and polygons. С этими данными часто связаны метаданные.This data often has metadata information associated with it. Например, точка может представлять местоположение ресторана, а метаданные об этом ресторане могут быть именем, адресом и типом пищи, который он обслуживает.For example, a point may represent the location of a restaurant and metadata about that restaurant may be its name, address, and type of food it serves. Эти метаданные можно добавить как свойства геоjson Feature .This metadata can be added as properties of a GeoJSON Feature. Следующий код создает простую функцию Point со title свойством, имеющим значение "Hello World!"The following code creates a simple point feature with a title property that has a value of "Hello World!"

//Create a data source and add it to the map.
DataSource source = new DataSource();
map.sources.add(source);

//Create a point feature.
Feature feature = Feature.fromGeometry(Point.fromLngLat(-122.33, 47.64));

//Add a property to the feature.
feature.addStringProperty("title", "Hello World!");

//Create a point feature, pass in the metadata properties, and add it to the data source.
source.add(feature);

Способы создания и добавления данных на карту см. в документации по созданию источника данных .See the Create a data source documentation for ways to create and add data to the map.

Когда пользователь взаимодействует с компонентом на карте, события могут использоваться для реагирования на эти действия.When a user interacts with a feature on the map, events can be used to react to those actions. Распространенным сценарием является отображение сообщения, сопоставленного со свойствами метаданных функции, с которой взаимодействует пользователь.A common scenario is to display a message made of the metadata properties of a feature the user interacted with. OnFeatureClickСобытие является основным событием, используемым для определения того, когда пользователь нажал на карту.The OnFeatureClick event is the main event used to detect when the user tapped a feature on the map. Существует также OnLongFeatureClick событие.There's also an OnLongFeatureClick event. При добавлении OnFeatureClick события к сопоставлению его можно ограничить одним слоем, ПЕРЕДАВ идентификатор слоя для ограничения.When adding the OnFeatureClick event to the map, it can be limited to a single layer by passing in the ID of a layer to limit it to. Если идентификатор слоя не передается, то при нажатии любой функции на карте, независимо от того, в каком слое он находится, будет срабатывать это событие.If no layer ID is passed in, tapping any feature on the map, regardless of which layer it is in, would fire this event. Следующий код создает слой символов для отрисовки данных точек на карте, затем добавляет OnFeatureClick событие и ограничивает его на этот уровень символов.The following code creates a symbol layer to render point data on the map, then adds an OnFeatureClick event and limits it to this symbol layer.

//Create a symbol and add it to the map.
SymbolLayer layer = new SymbolLayer(source);
map.layers.add(layer);

//Add a feature click event to the map.
map.events.add((OnFeatureClick) (features) -> {
    //Retrieve the title property of the feature as a string.
    String msg = features.get(0).getStringProperty("title");

    //Do something with the message.
}, layer.getId());    //Limit this event to the symbol layer.

Отображение всплывающего сообщенияDisplay a toast message

Всплывающее сообщение — это один из самых простых способов отобразить сведения для пользователя и доступен во всех версиях Android.A toast message is one of the easiest ways to display information to the user and is available in all versions of Android. Он не поддерживает никаких типов вводимых пользователем данных и отображается только в течение короткого периода времени.It doesn't support any type of user input and is only displayed for a short period of time. Если вы хотите быстро предоставить пользователю сведения о том, что они применяют, то может быть хорошим вариантом.If you want to quickly let the user know something about what they tapped on, a toast message might be a good option. В следующем коде показано, как можно использовать всплывающее сообщение с OnFeatureClick событием.The following code shows how a toast message can be used with the OnFeatureClick event.

//Add a feature click event to the map.
map.events.add((OnFeatureClick) (features) -> {
    //Retrieve the title property of the feature as a string.
    String msg = features.get(0).getStringProperty("title");

    //Display a toast message with the title information.
    Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}, layer.getId());    //Limit this event to the symbol layer.

Анимация касания функции и отображение всплывающего сообщения

Помимо всплывающих сообщений существует много других способов представления свойств метаданных функции, например:In addition to toast messages, There are many other ways to present the metadata properties of a feature, such as:

  • - Мини Snackbars -приложение снаккбар Предоставьте упрощенную обратную связь над операцией.Snackbar widget - Snackbars provide lightweight feedback about an operation. Они показывают короткое сообщение в нижней части экрана на мобильных устройствах, а в нижнем левом углу — на большем.They show a brief message at the bottom of the screen on mobile and lower left on larger devices. Snackbars отображается над всеми другими элементами на экране, и только один может отображаться за раз.Snackbars appear above all other elements on screen and only one can be displayed at a time.
  • Диалоговые окна — это небольшое окно, предлагающее пользователю принять решение или ввести дополнительные сведения.Dialogs - A dialog is a small window that prompts the user to make a decision or enter additional information. Диалоговое окно не заполняет экран и обычно используется для модальных событий, требующих от пользователя выполнения действия, прежде чем они смогут продолжить работу.A dialog doesn't fill the screen and is normally used for modal events that require users to take an action before they can continue.
  • Добавление фрагмента к текущему действию.Add a Fragment to the current activity.
  • Переход к другому действию или представлению.Navigate to another activity or view.

Следующие шагиNext steps

Чтобы добавить дополнительные данные на карту, выполните следующие действия.To add more data to your map: