moe — первопроходец. Как чистые новички в ГИС, если в этой статье есть концепции или имена собственные, связанные с ГИС, вы можете выдвинуть их в области комментариев, и они будут пересмотрены как можно скорее.
предисловие
Не так давно мне поручили исследовать и разработать технический маршрут 3D-визуализации и умного города.Первое, что пришло мне в голову, этоCesiumЭто библиотека с открытым исходным кодом мирового класса. Но в моем бизнесе может быть много функциональных реализаций, связанных с пространственным и географическим анализом, поэтому я нашел гиперграф. Hypergraph имеет пакет 3D-WebGL для 3D-продуктов на основе цезиевой упаковки и вторичной упаковки (адрес загрузки продукта прилагается в конце статьи). Все готово, давайте вкратце разберемся, в чем же заключается магия Цезия.
Cesium
Что такое цезий
Cesium — это кроссплатформенная кроссбраузерная библиотека JavaScript для отображения трехмерных глобусов и карт. Cesium использует WebGL для графики с аппаратным ускорением, которая не требует поддержки каких-либо подключаемых модулей, но требует, чтобы браузер поддерживал WebGL. Он предоставляет комплект для разработки на основе Javascript, который нам удобен для эффективного и быстрого создания 3D-проекта.
Что может цезий
- Поддержка 2D, 2.5D, 3D отображения карты
- Он может рисовать различные геометрические фигуры, выделять области, поддерживать импортированные изображения и даже 3D-модели и другие отображения визуализации данных.
- Может использоваться для динамической визуализации данных и обеспечивает хорошую сенсорную поддержку, поддерживая большинство браузеров и мобильных устройств.
- Cesium также поддерживает динамическое отображение данных на основе временной шкалы.
Как использовать цезий
В следующем коде я использую пакет продукта, в котором суперкарта упакована на основе второго раза Cesium, поэтому я кратко расскажу о том, как использовать самый простой Cesium.
Скопируйте папку Build в исходном коде Cesium в наш проект. Затем статически импортируйте соответствующие файлы в проект.
<link rel="stylesheet" href="./Build/Cesium/Widgets/widgets.css">
<script src="./Build/Cesium/Cesium.js"></script>
Запустите после выпуска, появится знакомый helloworld и земля.
полный код
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Use correct character set. -->
<meta charset="utf-8">
<!-- Tell IE to use the latest, best version. -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Make the application on mobile take up the full browser screen and disable user scaling. -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<title>Hello World!</title>
<script src="../Build/Cesium/Cesium.js"></script>
<style>
@import url(../Build/Cesium/Widgets/widgets.css);
html, body, #cesiumContainer {
width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
}
</style>
</head>
<body>
<div id="cesiumContainer"></div>
<script>
Cesium.Ion.defaultAccessToken='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3ZjA2ZDQ2ZS02NTA4LTQ2NTItODE1My1kZjE3MjBkMjFkNzAiLCJpZCI6NDM5NCwic2NvcGVzIjpbImFzciIsImdjIl0sImlhdCI6MTU0MDcyNzI4Nn0.L7P8pJponZfYjdsGnEw2hIHd2AN0h-SuYl6XvzOwLeA';
var viewer = new Cesium.Viewer('cesiumContainer');
</script>
</body>
</html>
Строительство проекта
В качестве фреймворка для разработки выбираем Vue, поэтому больше о сборке Vue проекта вводить не буду.В наггетсах можно встретить всех, что доказывает, что каждый отличный фронтенд(прикоснуться к рыбе), если не xdm, то просто посмотрите на Baidu.
Представляем пакет WebGL
Поскольку этот пакет основан на вторичном развитии цезия, метод введения может быть таким же, как у цезия, нужно только изменить содержимое в упаковке.Build/Cesium
папка к нашемуpublic/static
вниз вindex.html
Его можно импортировать статически.
widgets.css содержит визуальные элементы управления Ceisum.
<link rel="stylesheet" href="static/Cesium/Widgets/widgets.css">
Cesium.js определяет объект Cesium, который включает в себя то, что нам нужно
<script src="static/Cesium/Cesium.js"></script>
Классический HelloWorld
Как и многие API-интерфейсы карт, Cesium также требует div в качестве единственного контейнера для 3D-сцены и генерирует соответствующий экземпляр Viewer при инициализации страницы.
подчеркивать! подчеркивать! подчеркивать!
Важные вещи говорятся трижды. Все о цезиевых переменных, пожалуйста! должен!Не сохранять в данных! Поскольку VUE захватывает данные в данных, объект рекурсивно подвергается захвату данных, таким образом, отображается изменение статуса. Атрибуты экземпляра Cesium чрезвычайно высоки, а иерархия крайне занижена, и он смонтирован на DATA. Не случайно, ваш браузер рухнет.
Если требуется связь, проще всего смонтировать ее на оконном объекте.
полный код
<template>
<div class="container">
<div id="cesiumContainer"></div>
</div>
</template>
<script>
var viewer, camera;
export default {
data() {
return {};
},
mounted() {
this.init();
},
methods: {
init() {
viewer = new Cesium.Viewer("cesiumContainer", {});
},
},
};
</script>
<style lang="scss" scoped>
</style>
Запустив проект, мы можем увидеть эффект на следующем рисунке.
наконец
В этой статье мы просто внедрили в наш проект самую простую трехмерную сцену, а в следующей статье мы кратко познакомим вас с основными понятиями на карте и попробуем нарисовать на нашей земле такие элементы, как точки, линии и поверхности. Затем постепенно обогащаем наш функционал до него.
приложение
Веб-сайт, связанный с цезием
- cesium.com/docs/Документация по цезию
- cesium.com/docs/cesium… Cesium API
- sandcastle.cesium.com/Пример цезиевой песочницы (много эффектов можно найти здесь)
URL-адреса, связанные с гиперкартой
-
support.super map.com.com: 8090/web-admin/web/…Загрузка пакета продукта Hypergraph WebGL
-
support.super map.com Talent: 8090/WebAdmin/exam P…Пример гиперграфа 3D
-
support.super map.com Талант: 8090/WebAdmin/Web/Ах…Документы свойств API, связанные с гиперграфом и цезием (лично мне удобнее)
серия статей
[3D ГИС-визуализация] Реализация умного города на основе Vue+Cesium+Supermap (2)
[3D ГИС визуализация] Реализация умного города на основе Vue+Cesium+Supermap (3)
[3D ГИС визуализация] Реализация умного города на основе Vue+Cesium+Supermap (4)