Как в google earth добавить многоугольник

Обновлено: 03.07.2024

Я совершенно новый к Про Google Earth, и в ходьбе через обучающие программы, мои многоугольники не работают, поскольку они, как предполагается. Я следую всем инструкциям от уроков Google Earth, но ничто не обнаруживается на моей земле. Шаги я следую:

  1. Fly to address/location;
  2. Click the +Polygon button;
  3. Enter name, choose colors & density, make altitude Relative to Ground at 5 meters, click OK.
  4. Get sad that nothing happens.

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

Разве я не заполняю что-то, что требуется?

GE Add Polygon 1
GE Add Polygon 2
GE Add Polygon 3
GE Add Polygon 4
GE Add Polygon 5

В отсутствие слоя пакета Google Earth необходимо будет найти собственные данные, чтобы подчеркнуть определенные свойства.

Многие муниципалитеты, округа и государства будут часто предлагать данные о пакете как файл форм. В масштабе штата база данных пакета Висконсина превосходный пример этого. Я предложил бы искать веб-сайты местного органа власти области, или просто искать" [область] данные о стекле пакета".

Once you (hopefully) find a shapefile, open up Google Earth and select File > Import. Select filetype ESRI Shape (*.shp), browse to and select your downloaded data, then click Open. Your parcel data will probably have more than 2500 features, so Google Earth will give you a little warning message, but go ahead and click Import All.

Google Earth все еще позволяет вам искать отдельные свойства. Когда вы будете искать данную собственность, она изменит масштаб изображения вас к нему. С видимым файлом форм пакета необходимо быть в состоянии видеть и проследить по схеме его с , Добавляет Многоугольник инструмент.

В прошлой статье Google Earth Engine (GEE) как общедоступный суперкомпьютер речь шла про работу в облачном редакторе GEE, где для доступа достаточно лишь наличия Google почты. Если потребности ограничиваются разовыми задачами и гигабайтами извлекаемых данных, то этого вполне достаточно. Но для автоматизации множества даже мелких задач облачный редактор не лучший способ работы и, тем более, когда требуется многократно получать растры суммарным размером в терабайты. В таких случаях потребуются другие инструменты и сегодня мы рассмотрим возможности доступа из консольных shell и Python скриптов и Python Jupyter notebook.



На скриншоте Python Jupyter ноутбук, где растр с данными о плотности населения за 2020 год из каталога Earth Engine data Catalog: WorldPop Global Project Population Data отображен на карте OpenStreetMap

Введение

Как говорится, аппетит приходит во время еды. Вот и я, хотя давно и с удовольствием работаю с Google Earth Engine (GEE), только недавно столкнулся с задачами, требующими регулярного извлечения терабайт данных для их последующей обработки. К счастью, это вполне реально. Более того, на GEE все нужные данные представлены в одном месте и регулярно обновляются, что делает его оптимальным источником. Конечно, мне понятно, насколько мало специалистов работают с такими наборами пространственной информации, и уж точно они не ищут статьи на русском языке (потому, что их нет). С другой стороны, специалисты по машинному обучению (ML) часто жалуются на недостаток данных, так вот же вам настоящий Клондайк! Есть разные варианты, как реализовать машинное обучение на этих данных — можно средствами GEE, можно обратиться к функциям Compute Engine или делать все самому. Впрочем, это отдельная большая тема, так что мы ограничимся лишь получением данных.

Облачные акаунты Google

Для работы нам понадобится подключение к облачным аккаунтам Google Cloud SDK и установленный консольный google-cloud-sdk. При наличии гугл почты у нас уже есть один (или несколько) персональных аккаунтов. Просмотреть список доступных аккаунтов и переключаться между ними можно с помощью консольной команды:

Здесь уже отображена подсказка для переключения между аккаунтами:

После переключения нужно авторизоваться в аккаунте :

Доступ к облачным хранилищам

Обычных почтовых аккаунтов достаточно для доступа к облачным хранилищам buckets и Google Drive, куда можно сохранять данные GEE из облачного редактора GEE. Заметим, что при доступе через API данные возможно сохранить сразу локально.

Cохранение данных GEE на buckets выполняется с помощью функций Export.table.toCloudStorage и Export.image.toCloudStorage и используется в случаях, когда планируется дальнейшая работа с файлами в облаке Google Compute Engine. Управлять этими файлами можно с помощью утилиты gsutil, например:

Эта команда покажет список файлов и их размеры в удобных человеку единицах (см. ключ -h). С помощью утилиты gsutil можно осуществлять различные файловые операции, ключи достаточно интуитивны (cp, rm. ), подробности смотрите в справке указанной утилиты.

Для сохранения из GEE на Google Drive доступны команды Export.table.toDrive и Export.image.toDrive, дальнейшее управление файлами доступно в веб-интерфейсе или с помощью дополнительных утилит и приложений. Преимущественно сохранение на Google Drive используется для скачивания готовых файлов.

Доступ к GEE через API

вместо использования функции Python API ee.Authenticate() с интерактивной авторизацией каждого сеанса. Смотрите также консольную авторизацию

Аналогично, ключ сервисного аккаунта позволяет авторизоваться и при использовании Python GDAL:

Или консольных утилит GDAL:

Извлечение растров GEE

Для получения растров мы будем говорить о методе API Method: projects.assets.getPixels Такой доступ обеспечивает высокую скорость передачи данных и позволяет копировать огромные объемы данных, но отдельными блоками размером не более 32MB. К счастью, проект GDAL уже предоставляет обертку для этого API, так что достаточно одного вызова нужной утилиты или функции для передачи всего растра целиком.

Возьмем практический пример для консольных утилит GDAL и на Python. Просмотрим набор данных WorldPop/GP/100m/pop и извлечем один из найденных растров за 2020 год. Растры в этом наборе варьируются в размере по порядку величины от мегабайт до гигабайт, для примера выберем один из небольших:

Аналогично на Python:

Заключение

Выше мы рассмотрели достаточно «продвинутые» техники работы с Google Earth Engine. Если вы обращаетесь к GEE регулярно, намного удобнее использовать шелл скрипты и Python Jupyter ноутбуки и иметь возможность сохранять практически произвольные объемы данных локально без промежуточных облачных хранилищ и без ожидания выполнения очереди заданий экспорта, которое может затянуться. Отдельно отмечу, что вовсе не обязательно извлекать «сырые» данные — можно их предварительно обработать средствами GEE. За подробностями серверной обработки, работы с GDAL и отображения данных обратитесь к ссылкам ниже.

Мне было бы интересно получить обратную связь от читателей: стоит ли обращаться к более сложным темам или и это уже за гранью того, что интересует русскоязычную аудиторию? Знаю, что немало читателей здесь используют Google Transtale и подобные переводчики, возможно, стоит сразу писать на английском на LinkedIn, как я уже делаю с публикациями по геофизике.

В этом примере показано, как добавить карту Google в приложение для Android, а также как использовать ломаные линии и многоугольники для отображения маршрутов и областей на карте.

Следуйте руководству по созданию приложения для Android с помощью Maps SDK для Android. Рекомендуемая среда разработки – Android Studio.

Как получить код

Версия на языке Java:

Версия на языке Kotlin:

Как настроить проект


Чтобы создать проект в Android Studio, выполните следующие действия:

    и установите Android Studio. в Android Studio. Клонируйте или скачайте репозиторий с примерами Google Maps Android API версии 2 с сайта GitHub, если вы ещё не сделали этого.

Импортируйте обучающий проект:

  • В Android Studio выберите Файл > Создать > Импортировать проект.
  • После скачивания перейдите в каталог, где вы сохранили репозиторий с примерами Google Maps Android API версии 2.
  • Найдите проект Polygons. Он расположен в следующем каталоге:
    PATH-TO-SAVED-REPO/android-samples/tutorials/java/Polygons (Java)
    PATH-TO-SAVED-REPO/android-samples/tutorials/kotlin/Polygons (Kotlin)
  • Выберите каталог проекта и нажмите ОК. Теперь Android Studio создаст ваш проект с использованием инструмента сборки Gradle.

Как получить ключ API и активировать нужные API

Для выполнения этого учебного проекта вам понадобится ключ Google API, который авторизован для Maps SDK for Android.

Более подробную информацию можно найти в полном руководстве по получению ключа API.

Как добавить ключ API в свое приложение

Добавьте приведенную ниже строку и укажите вместо YOUR_API_KEY ваш ключ API.

Плагин Secrets Gradle Plugin для Android копирует ключ API во время сборки приложения и делает его доступным в виде переменной сборки в манифесте Android, как объяснено ниже.

Как создать сборку и запустить приложение

  1. Подключите устройство Android к компьютеру. Выполните инструкции по активации параметров для разработчиков на устройстве Android и настройте систему для обнаружения этого устройства. Для настройки виртуального устройства вы также можете использовать Менеджер виртуального устройства Android (AVD). Выбирая эмулятор, убедитесь, что вы используете образ, который содержит интерфейсы Google API. Подробную информацию можно найти в руководстве по началу работы.
  2. В Android Studio выберите пункт меню Запустить или нажмите на значок воспроизведения, чтобы запустить свое приложение. В открывшемся окне выберите устройство.

Android Studio запустит Gradle для сборки приложения, а затем отобразит результаты на устройстве или в эмуляторе.

Вы должны увидеть карту с двумя многоугольниками, наложенными на карту Австралии, такую, как на изображении на этой странице.

Понимание кода

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

Проверка манифеста Android

Обратите внимание на перечисленные ниже элементы в файле AndroidManifest.xml своего приложения.

Добавьте элемент meta-data , чтобы указать версию сервисов Google Play, с которой было скомпилировано приложение.

Добавьте элемент meta-data с указанием своего ключа API. В примере, приведенном в этом руководстве, значение ключа API сопоставляется с определенной ранее переменной сборки ( MAPS_API_KEY ). Во время сборки приложения плагин Secrets Gradle Plugin для Android делает ключи в вашем файле local.properties доступными, используя переменные манифеста.

В файле build.gradle приведенная ниже строка осуществляет передачу ключа API в манифест Android.

Ниже приведен пример манифеста полностью:

Добавление карты

Отобразите карту, используя Maps SDK для Android.

Добавьте элемент <fragment> в файл макета для объекта activity, activity_maps.xml . Этот элемент указывает, что фрагмент SupportMapFragment должен выступать в роли контейнера для карты и предоставить доступ к объекту GoogleMap . В учебном проекте используется версия библиотеки поддержки Android для фрагмента карты. Это обеспечивает обратную совместимость с более ранними версиями фреймворка Android.

В методе onCreate() своего объекта activity установите файл макета как представление контента. Получите дескриптор для фрагмента карты путем вызова метода FragmentManager.findFragmentById() . Затем используйте метод getMapAsync() , чтобы зарегистрировать обратный вызов карты:

Kotlin

Реализуйте интерфейс OnMapReadyCallback и переопределите метод onMapReady() . API выполняет этот обратный вызов, когда объект GoogleMap доступен (это позволяет вам добавлять объекты на карту и настраивать их в своем приложении).

Kotlin

Чтобы начертить линию на карте, используйте ломаную линию

Ломаная линия (объект Polyline ) – это последовательность отрезков прямых, с помощью которых можно нарисовать любую фигуру. Как правило, ломаные линии используются для нанесения на карту маршрутов.

Создайте объект PolylineOptions и добавьте к нему точки. Каждая точка соответствует местоположению на карте, которое вы определяете с помощью объекта LatLng с указанием широты и долготы. Ниже приведен пример кода для ломаной линии с шестью точками.

Чтобы добавить ломаную линию на карту, вызовите метод GoogleMap.addPolyline() .

Kotlin

Задайте для параметра clickable значение true , если вы хотите, чтобы для ломаной линии обрабатывались события кликов. Дополнительная информация об обработке событий будет приведена далее в этом руководстве.

Сохранение произвольных данных с помощью ломаной линии

Вы можете сохранять объекты с произвольными данными с помощью ломаных линий и других геометрических фигур.

Чтобы сохранить объект данных с помощью ломаной линии, вызовите метод Polyline.setTag() . Код ниже определяет произвольный тег ( A ), который указывает тип ломаной линии.

Kotlin

Извлеките данные с помощью метода Polyline.getTag() , как показано в следующем разделе.

Собственный стиль ломаной линии

В объекте PolylineOptions вы можете задавать различные свойства стиля, например цвет линии, ее толщину и начертание, тип соединения, вид начальной и конечной точек. Если какое-либо свойство не определено, API будет использовать вариант по умолчанию.

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

Kotlin

Приведенный ниже код задает пользовательскую битовую карту для ломаной линии типа А, а также ориентировочную толщину линии, равную 10 пикселям. API масштабирует битовую карту с учетом ориентировочной толщины линии. Укажите толщину линии, которую вы использовали при создании битовой карты в исходном размере изображения. Совет. Откройте битовую карту в графическом редакторе в масштабе 100 % и определите нужную толщину линии для этого изображения.

Обработка событий кликов для ломаной линии

Чтобы сделать ломаную линию кликабельной, вызовите метод Polyline.setClickable() . По умолчанию ломаные линии не интерактивны, а приложение не получает уведомления, если пользователь нажимает на линию.

Реализуйте интерфейс OnPolylineClickListener и вызовите метод GoogleMap.setOnPolylineClickListener() , чтобы добавить прослушиватель на карту:

Kotlin

Переопределите метод обратного вызова onPolylineClick() . Пример кода, где вид ломаной линии меняется со сплошного на пунктирный или обратно каждый раз, когда пользователь нажимает на нее:

Kotlin

Представление областей на карте с помощью многоугольников

Многоугольник ( Polygon ) – это фигура, состоящая из упорядоченной последовательности координат, как и ломаная линия ( Polyline ). Разница только в том, что многоугольник – закрытая фигура, которую можно заполнить заливкой.

Создайте объект PolygonOptions и добавьте в него точки. Каждая точка соответствует местоположению на карте, которое вы определяете с помощью объекта LatLng с указанием широты и долготы. Ниже приведен пример кода для многоугольника из четырех точек.

Чтобы сделать многоугольник кликабельным, вызовите метод Polygon.setClickable() . По умолчанию многоугольники не интерактивны, а приложение не получает уведомления, если пользователь нажимает на фигуру. События кликов для многоугольников обрабатываются так же, как и для ломаных линий. См. выше.

Чтобы добавить многоугольник на карту, вызовите GoogleMap.addPolygon() .

Чтобы сохранить объект данных для многоугольника, вызовите метод Polygon.setTag() . Приведенный ниже код определяет произвольный тип ( alpha ) для многоугольника.

Kotlin

Собственный стиль многоугольника

В объекте PolygonOptions вы можете задавать различные свойства стиля, например цвет линии, ее толщину и начертание, тип соединения и цвет заливки. Если какое-либо свойство не определено, API будет использовать вариант по умолчанию.

Приведенный ниже код задает определенные цвета и начертание линий в зависимости от типа многоугольника – произвольного свойства в объекте данных для фигуры.

Kotlin

Подробнее о начертании, а также других вариантах персонализации фигур…

Дальнейшие действия

Прочитайте статью об объекте круг. Он похож на многоугольник, но у него есть свойства, определяющие форму круга.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

В данном упражнении публикуются данные поверхности из чертежа в Google Earth. Затем Google Earth использует систему координат, заданную в параметрах чертежа, для получения изображения области вокруг поверхности.

Система координат, заданная в параметрах чертежа, используется при преобразовании данных, импортированных в Google Earth или экспортированных из Google Earth.

Примечание Для получения наилучших результатов убедитесь, что у вас установлена версия Google Earth версии не ниже 4.0.

Более подробные сведения приведены в разделе справочной системы AutoCAD Civil 3D "Публикация данных Civil в Google Earth" .

Публикация данных поверхности в Google Earth


  1. Откройте чертеж Surface-8.dwg, который расположен в папке "папка чертежей учебных пособий" .
  2. Запустите Google Earth.
  3. Выберите команду вкладки "Вывод" панели "Публикация" "Публикация в Google Earth" .
  4. В Мастере публикации AutoCAD DWG в Google Earth на странице "Характеристика" можно ввести данные, которые будут использоваться для создания нового временного компонента в папке "Temporary Places" на панели "Места в Google Earth".

Задайте следующие параметры.

    Имя : Aerial Mapping_NH83F

Это поле автоматически заполняется именем чертежа.

Это делает доступной кнопку , которая используется для указания определенных объектов на чертеже, которые надо публиковать в Google Earth.


Программа Google Earth сориентирована на панорамирование и зумирование по определенным координатам, а также на отображение многоугольника, определяющего границы поверхности. Обратите внимание, что имя и описание, введенные в Мастере публикации AutoCAD DWG в Google Earth , использовались для создания нового компонента в папке Temporary Places на панели "Места Google Earth". При выходе из Google Earth появляется запрос указания нового местоположения для сохранения в папке My Places.


Установка этого флажка отключает многоугольник, определяющий границы поверхности. Многоугольник был экспортирован из AutoCAD Civil 3D, так что можно подтвердить местоположение изображения. Снятие флажка "Aerial Mapping_NH83F" приводит к отключению многоугольника, что предотвращает импорт обратно в AutoCAD Civil 3D.

Примечание Если Google Earth в процессе зумирования пропускает многоугольник, разверните коллекцию "Temporary Places Aerial Mapping_NH83F Модель Полилиния". Дважды щелкните на полилинии для зумирования по границе полилинии.

Для продолжения работы с учебным пособием перейдите к разделу Упражнение 2. Импорт изображения Google Earth .

Читайте также: