Исправления: гаечный ключ:
Дополнения: праздничный торт:
— Добавлен метод toString в класс Resource на случай, если экземпляр будет зарегистрирован как строка. — Экспонирован метод Transforms.rotationMatrixFromPositionVelocity из частного API Cesium.
Исправления: гаечный ключ:
— Исправлены JSDoc и TypeScript для всех типов ImageryProvider, в которых отсутствовали свойства defaultNightAlpha и defaultDayAlpha. — Исправлены JSDoc и TypeScript для MaterialProperty, которые не позволяли использовать примитивные типы в конструкторе. — Исправлены JSDoc и TypeScript, чтобы разрешить создание экземпляров GeometryInstance с использованием классов XXXGeometry. — Исправлены JSDoc и TypeScript для buildModuleUrl, который был случайно исключён из официального API CesiumJS. — Исправлены JSDoc и TypeScript для EllipsoidGeodesic, где результат ошибочно указан как обязательный. — Исправлены JSDoc и TypeScript для EllipsoidTangentPlane.fromPoints, который принимает массив Cartesian3, а не отдельный экземпляр. — Исправлены JSDoc и TypeScript для EntityCollection.getById и CompositeEntityCollection.getById, которые могут возвращать undefined. — Исправлены JSDoc и TypeScript для параметров опций Viewer. — Устранена утечка памяти, возникавшая при некоторых запросах 3D Tiles. Будучи непреднамеренно сохранёнными после отмены запросов. #8843
viewer.scene.primitives.add(Cesium.createOsmBuildings())
."types": ["cesium"]
в ваш tsconfig.json, чтобы определения использовались.Source/Cesium.d.ts
после установки.GlobeTranslucency
, включая альфа переднего лица, альфа заднего лица и прямоугольник прозрачности.Globe.undergroundColor
и Globe.undergroundColorAlphaByDistance
для управления тем, как отображается задняя сторона глобуса, когда камера находится под землёй или глобус полупрозрачен. #8867Cesium3DTileset.extensions
, чтобы получить свойство extensions из JSON набора тайлов. #8829Camera.completeFlight
, которое заставляет текущий полёт камеры немедленно перейти к конечному пункту назначения и вызвать обратный вызов завершения. #8788nightAlpha
и dayAlpha
в ImageryLayer
для отдельного управления альфа для ночной и дневной сторон глобуса. #8868SkyAtmosphere.perFragmentAtmosphere
для переключения между вершинным и фрагментным затенением атмосферы. #8866PostProcessStage
#8798DebugCameraPrimitive
добавлена опция frustumSplits
. [8849]#rgba
и #rrggbbaa
в Color.fromCssColorString
. [8873]var viewer = new Viewer("cesiumContainer", {
contextOptions: {
webgl: {
powerPreference: "default",
},
},
});
Были исправлены следующие проблемы:
Также произошли следующие изменения:
Кроме того, были добавлены следующие возможности:
Исправлены следующие ошибки:
В версии 1.64.0 исправлена проблема с освещением на основе изображений, где недопустимая карта окружения могла завершиться ошибкой. Также были внесены различные небольшие внутренние улучшения.
Версия 1.63.1 содержит исправления ошибок:
Цезий перешёл на ES6 в версии 1.63. Модули. Это может быть критическим изменением для вашего приложения в зависимости от того, как вы используете Cesium. Подробные сведения см. в нашем блоге (https://cesium.com/blog/2019/10/31/cesiumjs-es6/).
Мы объединили весь контент нашего веб-сайта с cesiumjs.org и cesium.com в одном доме на cesium.com. Вот где вы можете найти:
Дополнения:
Исправления:
Устарело:
Устаревшее:
Добавления:
Добавления:
Исправления:
scene.postProcessStages.fxaa.enabled = true
(#7875).Исправлено падение при использовании модели glTF с применением KHR_texture_transform без определённого сэмплера. (#7916)
Исправлена фильтрация выбора пост-обработки для работы с bloom. (#7984)
Отключён HDR по умолчанию для улучшения визуального качества в большинстве стандартных случаев использования. Установите viewer.scene.highDynamicRange = true
, чтобы снова включить.* (#7966)*
Исправлена ошибка, из-за которой скрытые точечные примитивы всё ещё отображались на некоторых операционных системах. (#8043)
Исправлены проблемы с обработкой отрицательной высоты в GoogleEarthEnterpriseTerrainProvider. (#8109)
Исправлен случай, когда файлы KTX или CRN не определялись должным образом. (#7979)
Устранено затемнение глобуса из-за нескольких материалов. (#7726)
Переработано отображение меток с использованием полей расстояния со знаком (SDF) для более чёткого текста. (#7730)
Добавлен новый пример Sandcastle для демонстрации новых меток SDF.
Добавлена поддержка полигональных отверстий в CZML.* (#7991)*
Добавлено свойство totalScale для Label, которое представляет собой общий масштаб метки с учётом масштаба метки и относительного размера желаемого шрифта по сравнению с созданным размером глифа.
PolygonGraphics.hierarchy теперь преобразует значения постоянного массива в PolygonHierarchy при установке, поэтому код, который обращается к значению свойства, может полагаться на то, что это всегда PolygonHierarchy.
Добавлена поддержка CZML для heightReference для box, cylinder и ellipsoid, а также добавлена поддержка CZML для classificationType для коридора, эллипса, многоугольника, полилинии и прямоугольника.* (#7899)*
Добавляет функцию exportKML для экспорта экземпляров Entity с графиками Point, Billboard, Model, Label, Polyline и Polygon.* (#7921)*
Добавлена поддержка нового Mapbox Style API.* (#7698)*
Добавлена поддержка расширения AGI_articulations поставщика glTF 2.0 для Entity API и CZML.* (#7907)*
Исправлена ошибка, при которой рекламные щиты нельзя было выбрать при полном уменьшении масштаба в 2D-виде.* (#7908)*
Устранена ошибка, из-за которой запросы изображений, возвращающие HTTP-код 204, препятствовали успешному выполнению любых последующих запросов в браузерах, поддерживающих ImageBitmap.* (#7914)*
Полигональные цвета исправлены при включении scene.highDynamicRange.* (#7924)*
Исправлена ошибка в инспекторе, где значения минимальной и максимальной высоты выбранной плитки были неопределёнными.* В запросе представлен текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — английский.
В классе Resource методы addQueryParameters и addTemplateValues были удалены. Пожалуйста, используйте setQueryParameters и setTemplateValues вместо них. #7695
Resource.fetchImage теперь принимает объект параметров. Используйте resource.fetchImage({ preferBlob: true }) вместо resource.fetchImage(true). Предыдущее определение функции больше не будет работать в версии 1.57. #7579
Добавлена поддержка жестов касания и удержания. Задержку касания можно настроить, обновив ScreenSpaceEventHandler.touchHoldDelayMilliseconds. #7286
Resource.fetchImage теперь имеет опцию flipY для вертикального зеркального отображения изображения во время выборки и декодирования. Она действительна только тогда, когда ImageBitmapOptions поддерживается браузером. #7579
В PointCloudShading добавлены опции backFaceCulling и normalShading. Обе опции применимы только к облакам точек, содержащим нормали. #7399
Cesium3DTileStyle.style реагирует на обновления и представляет текущее состояние стиля. #7567
Исправлено значение BlendFunction.ONE_MINUS_CONSTANT_COLOR. #7624
Исправлена ошибка, из-за которой HeadingPitchRoll.pitch был равен NaN при использовании .fromQuaternion из-за ошибки округления для значений pitch, близких к +/- 90°. #7654
Устранён сбой определённого типа, вызванный вращением камеры через рельеф местности. #6783
Исправлена ошибка в Resource при использовании с шаблонными заменами с использованием числовых ключей. #7668
Исправлена ошибка в Cesium3DTilePointFeature, где anchorLineColor использовал тот же экземпляр цвета вместо клонирования цвета. #7686
1.55 — 2019-03-01
Критические изменения: мега
Обновлены рендеринг рельефа и изображений, что привело к загрузке рельефа/изображений примерно на 33% быстрее и использованию примерно на 33% меньше данных. #7061
Был добавлен czm_materialInput.aspect как угол в радианах между 0 и 2pi (восток, север, запад до юга).
Поддержка CZML arcType добавлена для polyline и polygon, которая заменяет followSurface. followSurface по-прежнему поддерживается для совместимости с существующими документами. #7582
Исправлена проблема, из-за которой модели вызывали сбой при загрузке, если некоторые примитивы были закодированы Draco, а другие нет. #7383
Исправлена проблема, из-за которой метки RTL неправильно меняли местами неалфавитные символы. #7501
Исправлена поддержка Node.js для класса Resource и любой функциональности, использующей его внутри.
Исправлена проблема, из-за которой некоторые многоугольники земли, пересекающие нулевой меридиан, имели неправильные ограничивающие прямоугольники. #7533
Исправлена проблема, из-за которой полигоны на рельефе местности, использующие румбы, отображались неправильно. #7538
Исправлена проблема с EllipsoidRhumbLines.findIntersectionWithLongitude, когда долгота была IDL. #7551
Исправлены цвета силуэтов моделей при рендеринге с высоким динамическим диапазоном. #7563
Исправлена проблема с наземными полилиниями на глобусах, которые используют эллипсоиды, отличные от WGS84. ### 1.54 — 2019-02-01
EXT_texture_webp
.HeightReference.CLAMP_TO_GROUND
теперь прижимаются как к рельефу, так и к 3D-тайлам.classificationType
для GroundPrimitive
, CorridorGraphics
, EllipseGraphics
, PolygonGraphics
и RectangleGraphics
теперь равен ClassificationType.BOTH
.ModelAnimation.speedup
и ModelAnimationCollection.speedup
были удалены. Вместо них следует использовать ModelAnimation.multiplier
и ModelAnimationCollection.multiplier
.Scene.clampToHeight
теперь принимает необязательный аргумент width
перед аргументом result
. Предыдущее определение функции больше не будет работать в версии 1.56.PolylineGeometry.followSurface
был заменён на PolylineGeometry.arcType
. Предыдущее определение больше не будет работать в версии 1.57. Замените followSurface: false
на arcType: Cesium.ArcType.NONE
и followSurface: true
на arcType: Cesium.ArcType.GEODESIC
.SimplePolylineGeometry.followSurface
был заменён на SimplePolylineGeometry.arcType
. Предыдущее определение больше не будет работать в версии 1.57. Замените followSurface: false
на arcType: Cesium.ArcType.NONE
и followSurface: true
на arcType: Cesium.ArcType.GEODESIC
.GroundPrimitives
на 3D-тайлах.classificationType
в PolylineGraphics
и GroundPolylinePrimitive
, которое указывает, должна ли полилиния, прижатая к земле, быть прижата к рельефу, 3D-тайлам или обоим.Scene.sampleHeight
, Scene.clampToHeight
, Scene.sampleHeightMostDetailed
и Scene.clampToHeightMostDetailed
.nodeTransformations
для поворота колёс модели на основе её скорости.EllipsoidRhumbLine
как аналог румбовой линии для EllipsoidGeodesic
.PolygonGeometry
, PolygonOutlineGeometry
, PolylineGeometry
, GroundPolylineGeometry
. SimplePolylineGeometry.При использовании Cesium в Node.js теперь используется объединённая и минимизированная версия для повышения производительности, если только NODE_ENV специально не установлен в значение development.
Улучшена производительность QuantizedMeshTerrainData.interpolateHeight.
Добавлена поддержка моделей glTF с текстурами WebP с использованием расширения EXT_texture_webp.
Исправления:
Исправлены проблемы с производительностью 3D Tiles.
Устранена проблема, когда примитивы классификации с типом классификации CESIUM_3D_TILE отображались на местности.
Решена проблема, когда 3D-тайлы просвечивали через глобус.
Исправлен сбой при показе значения геометрии объекта, которое представляет собой интервал, покрывающий только часть диапазона доступности объекта.
Исправлено положение прямоугольников на северном и южном полюсах.
Исправлена проблема с размером изображения при использовании нескольких систем частиц.
В Sandcastle исправлена ошибка, из-за которой кнопка «Открыть в новом окне» не отображала изображение из-за ограничений URI большого двоичного объекта.
Решено, что установка scene.globe.cartographicLimitRectangle в undefined вызывала сбой.
Функция PrimitiveCollection.removeAll больше не содержит удалённые примитивы.
GeoJsonDataSource теперь использует полигоны и полилинии, которые используют румбы.
Устранена проблема, при которой некоторые наземные полигоны обрезались вдоль широтных кругов.
Исправлена ошибка, которая могла привести к сбою IE 11 при включении освещения на основе изображений.
Добавления:
Добавлено освещение на основе изображений для моделей PBR и 3D Tiles.
Двойной щелчок вдали от объекта позволяет отменить его отслеживание.
Исправления:
Исправлена проверка видимости 3D тайлов при выполнении нескольких проходов в одном кадре.
Скорректирован контраст на слоях изображений.
Исправлено отображение прозрачного цвета фона при включённом highDynamicRange.
Прозрачная геометрия отображается корректно при переключении highDynamicRange.
Версия 1.52 — 2018-12-03
Критические изменения:
TerrainProviders, реализующие доступность, теперь также должны реализовывать метод loadTileDataAvailability.
Устаревшее:
Свойство ModelAnimation.speedup устарело и переименовано в ModelAnimation.multiplier. Speedup будет удалён в версии 1.54.
Дополнения:
Добавлено... После sampleHeight или clampToHeight.
clippingPlanes.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(
tileset.boundingSphere.center
);
Это также устраняет несколько проблем с обрезающими плоскостями, которые неправильно использовали преобразование для наборов тайлов с дочерними элементами.
— Исправлен выбор перекрывающихся полупрозрачных примитивов. 1.49 — 2018-09-04
Исправления:
Изменения:
Дополнения:
Вот перевод текста на русский язык:
Для загрузки, когда skipLevelOfDetail имеет значение true:
Виджет Geocoder теперь учитывает высоту местности при расчёте конечного пункта назначения. (#6876)
Виджет Viewer теперь учитывает высоту местности при масштабировании или переходе к слоям изображений. (#6895)
Исправлены проблемы с управлением камерой в Firefox с помощью мыши и сенсорных событий. (#6372)
Исправлено getPickRay в 2D. (#2480)
Исправлено Globe.pick для 2D и Columbus View. (#6859)
Исправлено выделение объектов слоя изображений в 2D и в режиме Columbus. (#6859)
Исправлены периодические проблемы с закреплением земли для всех типов объектов, которые используют ссылку на высоту. (#6930)
Исправлена ошибка, из-за которой новый ClippingPlaneCollection создавался каждый кадр при использовании с объектом модели. (#6872)
Улучшены объекты Plane, чтобы они лучше соответствовали поверхности земного шара. (#6887)
Исправлен сбой при рендеринге полупрозрачных объектов, когда все теневые карты в сцене устанавливают fromLightSource в false. (#6883)
Исправлено затенение ночью в 2D и режиме Columbus. (#4122)
Исправлена проблема с загрузкой модели, когда примитив glTF 2.0 не имеет материала. (#6906)
Исправлен сбой, возникающий при установке show в false на полилинии, закреплённой на земле. (#6912)
Исправлена ошибка, при которой Cesium3DTileset не использовал правильный tilesetVersion. (#6933)
Исправлен сбой, который происходил при вызове scene.pick после установки нового поставщика данных о местности. (#6918)
Исправлена проблема, из-за которой браузер зависал при использовании drillPick на полилинии, прикреплённой к земле. (#6907)
Исправлена проблема, при которой цвет не обновлялся должным образом для полилиний, закреплённых на земле. (#6927)
Исправлена проблема чрезмерного использования памяти, которая возникала при использовании data URI для указания модели glTF. (#6928)
Исправлена проблема, при которой переключение с 2D на 3D могло вызвать сбой. (#6929)
Исправлена проблема, при которой точечные примитивы за камерой появлялись в поле зрения. (#6904)
createGroundPolylineGeometry больше не зависит от GroundPolylinePrimitive, что делает веб-воркер меньше и потенциально позволяет избежать зависания сборки в некоторых конфигурациях webpack. (#6946)
Исправлена проблема, которая приводила к сбою объектов местности (объектов с неуказанной высотой) и GroundPrimitives при пересечении международной линии перемены дат. (#6951)
Исправлён расчёт нормалей для CylinderGeometry, когда верхний радиус не равен нижнему радиусу. (#6863)
perPositionHeight
, включая поддержку вертикальных полигонов. Это также улучшает совместимость с KML.Cartesian3.midpoint
для вычисления средней точки между двумя позициями Cartesian3
.equalsEpsilon
в классы OrthographicFrustum
, PerspectiveFrustum
, OrthographicOffCenterFrustum
и PerspectiveOffCenterFrustum
.Устарело
content.url
в 3D Tiles устарела, чтобы отразить обновления спецификации 3D Tiles. Вместо этого используйте content.uri
. Поддержка content.url
будет сохранена для обратной совместимости.3DTILES_batch_table_hierarchy
вместо этого. Поддержка устаревшей иерархии пакетных таблиц будет сохранена для обратной совместимости.PostProcessStageLibrary.createLensFlarStage
устарел из-за опечатки и будет удалён в Cesium 1.49. Вместо него используйте метод PostProcessStageLibrary.createLensFlareStage
.region
, не преобразовывались при изменении modelMatrix
тайлсета.WebMercatorProjection
.PolygonGeometry
при использовании VertexFormat.POSITION_ONLY
, perPositionHeight
и extrudedHeight
.PolygonGeometry
и EllipseGeometry
при использовании поворота текстуры.Viewer
geocoder: true
.tsd-jsdoc
.requestRenderMode
. Основные моменты:Добавлена поддержка полилиний на местности (#6689, #6615).
Введены свойства heightReference и extrudedHeightReference для CorridorGraphics, EllipseGraphics, PolygonGraphics и RectangleGraphics (#6717).
Свойство selected объекта PostProcessStage представляет собой массив примитивов, используемых для выборочного применения этапа постобработки (#6476).
Изменения:
Модели glTF 2.0 скорректированы так, чтобы они были направлены лицевой стороной в сторону +Z согласно спецификации. Внутренне Cesium использует +X как направление вперёд, поэтому для моделей 2.0 был добавлен новый поворот от +Z к +X. Чтобы исправить модели, которые после этого изменения ориентированы неправильно:
Прекращена поддержка URL-адресов каталогов при загрузке наборов тайлов в соответствии с обновлённой спецификацией 3D Tiles (#6502).
KML и GeoJSON теперь используют PolylineGraphics вместо CorridorGraphics для полилиний на местности (#6706).
Дополнения:
Поддержка полилиний на местности (#6689, #6615):
PostProcessStage имеет свойство selected, которое представляет собой массив примитивов, используемый для выборочного применения стадии постобработки (#6476):
Добавлена поддержка CZML для zIndex с corridor, ellipse, polygon, polyline и rectangle (#6708).
Добавлен параметр CZML clampToGround для polyline (#6706).
Добавлена поддержка свойства RTC_CENTER в пакетных наборах 3D-моделей для соответствия обновлённой спецификации 3D Tiles (#6488).
Свойства heightReference и extrudedHeightReference добавлены в CorridorGraphics, EllipseGraphics, PolygonGraphics и RectangleGraphics (#6717):
Исправления:
Исправлена ошибка, из-за которой Cesium не мог загружать локальные ресурсы в Electron (#6726).
Исправлена ошибка, вызывающая сбои при пользовательских атрибутах вершин на Geometry, пересекающих IDL. Атрибуты будут интерполироваться барицентрически (#6644).
Исправлена ошибка, приводящая к сбоям при загрузке облаков точек с пакетными идентификаторами без знака int (#6666).
Исправлена ошибка. Вот перевод текста на русский язык:
С использованием Draco-кодированных тайлов i3dm и загрузкой двух моделей Draco по одному URL. #6668
colorMode
равный random
, могли возвращать один и тот же цвет при последовательных вызовах Color.fromRandom()
.Iso8601.MAXIMUM_VALUE
теперь форматируется в строку, которую можно проанализировать с помощью fromIso8601
.— Это релиз только для npm, предназначенный для исправления неправильно опубликованного 1.46.0. Никаких изменений кода не было.
WEBGL_depth_texture
или WEBKIT_WEBGL_depth_texture
), поэтому материалы для объектов рельефа и GroundPrimitives не поддерживаются в Internet Explorer.Перевод текста:
new Cesium.BingMapsGeocoderService(), ], });
Deprecated :hourglass_flowing_sand:
- Particle.size, ParticleSystem.rate, ParticleSystem.lifeTime, ParticleSystem.life, ParticleSystem.minimumLife и ParticleSystem.maximumLife были переименованы в Particle.imageSize, ParticleSystem.emissionRate, ParticleSystem.lifetime, ParticleSystem.particleLife, ParticleSystem.minimumParticleLife и ParticleSystem.maximumParticleLife. Использование параметров size, rate, lifeTime, life, minimumLife и maximumLife устарело и будет удалено в Cesium 1.46.
- Массив ParticleSystem.forces был заменён на функцию ParticleSystems.updateCallback. Использование параметра forces устарело и будет удалено в Cesium 1.46.
- Любые переменные ширины и высоты в ParticleSystem больше не будут отдельными компонентами. ParticleSystem.minimumWidth и ParticleSystem.minimumHeight теперь будут ParticleSystem.minimumImageSize, ParticleSystem.maximumWidth и ParticleSystem.maximumHeight теперь будут ParticleSystem.maximumImageSize, а ParticleSystem.width и ParticleSystem.height теперь будут ParticleSystem.imageSize. Использование параметров minimumWidth, minimumHeight, maximumWidth, maximumHeight, width и height устарело и будет удалено в Cesium 1.46.
Additions :tada:
- Добавлена опция logarithmicDepthBuffer в Scene. С этой опцией обычно визуализируется один логарифмический буфер глубины. Это повышает производительность за счёт меньшего количества вызовов отрисовки к графическому процессору и помогает избежать артефактов на соединении двух фрустумов. [#5851](https://github.com/CesiumGS/cesium/pull/5851)
- Когда поддерживается лог-глубина, ближняя и дальняя плоскости по умолчанию равны 0,1 и 1e10 соответственно.
- Добавлен IonGeocoderService и сделан им по умолчанию для виджета Geocoder.
- Добавлен createWorldImagery, который предоставляет изображения Bing Maps через аккаунт Cesium ion.
- Добавлен PeliasGeocoderService, который обеспечивает геокодирование через сервер [Pelias](https://pelias.io).
- Добавлена возможность для BaseLayerPicker группировать слои по категориям. Также добавлен ProviderViewModel.category для поддержки этой функции.
- Добавлен Math.log2 для вычисления логарифма числа по основанию 2.
- Добавлено перечисление GeocodeType, которое используется как необязательный параметр во всех экземплярах GeocoderService для различения запросов автозаполнения и поиска.
- В TaskProcessor добавлена функция initWebAssemblyModule для загрузки модуля Web Assembly в веб-воркере. [#6420](https://github.com/CesiumGS/cesium/pull/6420)
- В FeatureDetection добавлена функция supportsWebAssembly для проверки поддержки браузером загрузки модулей Web Assembly. [#6420](https://github.com/CesiumGS/cesium/pull/6420)
- Производительность MapboxImageryProvider улучшена на 300% благодаря переключению поддоменов tiles.mapbox.com. [#6426](https://github.com/CesiumGS/cesium/issues/6426)
- Добавлена возможность вызывать sampleTerrain из node.js для включения автономного сбора данных о местности.
- Добавлено больше примеров Sandcastle для системы частиц «ракетный» и «хвосты комет» и «погода». [#6375](https://github.com/CesiumGS/cesium/pull/6375)
- В класс конструктора ParticleSystem добавлены атрибуты цвета и масштаба. При определении переменных они переопределяют startColor и endColor, а также startScale и endScale. [#6429](https://github.com/CesiumGS/cesium/pull/6429)
Fixes :wrench:
- Исправлены ошибки в TimeIntervalCollection.removeInterval. [#6418](https://github.com/CesiumGS/cesium/pull/6418).
- Поддержка glTF была исправлена для работы с сетками с и без векторов касательных, с/без морф-целей, использующими один материал. [#6421](https://github.com/CesiumGS/cesium/pull/6421)
- Поддержка glTF исправлена для обработки скиновых сеток, когда кожа не предоставлена. [#6061](https://github.com/CesiumGS/cesium/issues/6061)
- Обновлён шейдер PBR glTF 2.0 для более яркого освещения. [#6430](https://github.com/CesiumGS/cesium/pull/6430)
- Разрешено использование loadWithXhr с URL-адресами строк в веб-воркере.
- Выполнено обновление до Draco 1.3.0 и реализовано ускорение. **1.44 — 2018-04-02**
**Основные моменты**:sparkler:
* Добавлен новый ярлык Sandcastle «Новое в X.X», который будет включать все новые демоверсии Sandcastle, добавленные для текущего выпуска. #6384
* Поддержка моделей glTF с геометрическим сжатием Draco. #5120
* Поддержка упорядочивания в DataSourceCollection. #6316
**Критические изменения**:mega:
* GeometryVisualizer теперь требует параметров primitive и groundPrimitive. #6316
* Для всех классов/функций, которые принимают экземпляр Resource, все дополнительные параметры, которые являются частью класса Resource, были удалены. Как правило, это включает параметры proxy, headers и query. #6368
* Все функции загрузки нижнего уровня, включая loadArrayBuffer, loadBlob, loadImage, loadJson, loadJsonp, loadText, loadXML и loadWithXhr, были удалены. Пожалуйста, используйте эквивалентные функции fetch в классе Resource. #6368
**Устаревшие**:hourglass_flowing_sand:
* ClippingPlaneCollection теперь поддерживается в Internet Explorer, поэтому ClippingPlaneCollection.isSupported устарела и будет удалена в Cesium 1.45.
* Теперь ClippingPlaneCollection следует использовать с объектами ClippingPlane вместо Plane. Использование объектов Plane устарело и будет удалено в Cesium 1.45.
* Credit теперь принимает параметры html и showOnScreen вместо объекта options. Использование параметра options устарело и будет удалено в Cesium 1.46.
* Свойства Credit.text, Credit.imageUrl и Credit.link устарели и будут удалены в Cesium 1.46. Используйте Credit.html для получения содержимого кредита.
* Функции Credit.hasImage и Credit.hasLink устарели и будут удалены в Cesium 1.46.
**Дополнения**:tada:
* Добавлен новый ярлык Sandcastle. **Новые возможности в версии X.X**
Включают все новые демонстрации Sandcastle, добавленные для текущего релиза.
* **Новое в X.X**, которое будет включать все новые демоверсии Sandcastle, добавленные в текущем релизе.
* Поддержка моделей glTF с [сжатием геометрии Draco](https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md).
* Добавлен параметр `dequantizeInShader` для опций `Model` и `Model.fromGltf`, чтобы указать, следует ли деквантовать сжатые активы glTF на GPU.
* Поддержка упорядочивания в `DataSourceCollection`.
* Вся наземная геометрия из одного `DataSource` будет отображаться перед всей наземной геометрией из другого `DataSource` в той же коллекции с более низким индексом.
* Используйте функции `DataSourceCollection.raise`, `DataSourceCollection.lower`, `DataSourceCollection.raiseToTop` и `DataSourceCollection.lowerToBottom`, чтобы изменить порядок `DataSource` в коллекции.
* Обновления `ClippingPlaneCollection` (https://github.com/CesiumGS/cesium/pull/6201):
* Удалён лимит в 6 плоскостей отсечения.
* Поддержка Internet Explorer.
* Введён объект `ClippingPlane` для использования с `ClippingPlaneCollection`.
* Пример использования Terrain Clipping Planes в Sandcastle.
* Изменён `Credit` для приёма строки HTML в качестве содержания кредита.
* Теперь примеры Sandcastle работают путём сохранения полного примера непосредственно в URL-адресе вместо создания гистов GitHub, поскольку анонимное создание гистов было удалено GitHub. Загрузка существующих гистов по-прежнему будет работать.
* Обновлено `WebMapServiceImageryProvider`, чтобы он мог принимать строку srs или crs для передачи параметров запроса ресурсов на основе версии WMS.
* Дополнительные параметры запроса добавлены в демонстрационное приложение CesiumViewer.
* `sourceType` определяет тип источника данных, если URL не имеет известного расширения файла.
* Опционально `flyTo=false` отключает автоматическое `flyTo` после загрузки источника данных.
* Добавлен пример CZML из нескольких частей в Sandcastle.
* Улучшен порядок обработки 3D-тайлов.
**Исправления**:
* Исправлена ошибка кэширования браузера Cesium ion.
* Исправлена формула для взвешенной смешанной прозрачности, независимой от порядка.
* Исправлена поддержка векторов касательных, предоставленных glTF.
* Исправлено отсутствие материалов при загрузке модели.
* По умолчанию установлено значение `alphaCutoff` в моделях glTF.
* Двойной флажок для материалов glTF с включенным `BLEND`.
* Анимация для моделей glTF при отсутствии целей анимации.
* Неправильное масштабирование во время сбоя загрузки модели.
* Рендеринг векторных тайлов при использовании `invertClassification`.
* Окклюзия при `globe.show = false`.
* Сбой при статической геометрии и атрибутах времени.
* Геометрический рендеринг тайлов в IE. ### 1.42.1 — 2018-02-01
*Это релиз только для npm, предназначенный для исправления проблемы с использованием Cesium в Node.js.*
— Исправлена ошибка, из-за которой Cesium не загружался в среде Node.js. [#6177](https://github.com/CesiumGS/cesium/pull/6177)
### 1.42 — 2018-02-01
##### Основные моменты :sparkler:
— Добавлена экспериментальная поддержка [3D Tiles Vector и Geometry data](https://github.com/CesiumGS/3d-tiles/tree/3d-tiles-next/TileFormats/VectorData). ([#4665](https://github.com/CesiumGS/cesium/pull/4665))
— Добавлен дополнительный режим для снижения использования CPU. См. [Improving Performance with Explicit Rendering](https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/). ([#6115](https://github.com/CesiumGS/cesium/pull/6115))
— Добавлен экспериментальный класс утилиты CesiumIon для работы с бета-API Cesium ion. [#6136](https://github.com/CesiumGS/cesium/pull/6136)
— Проведён крупный рефакторинг обработки URL. Все классы, которые принимают параметр url, теперь могут принимать объект Resource или строку. Это включает все провайдеры изображений, все провайдеры местности, Cesium3DTileset, KMLDataSource, CZMLDataSource, GeoJsonDataSource, Model и Billboard.
##### Критические изменения :mega:
— По умолчанию часы не анимируются. Установите опцию shouldAnimate в значение true при создании Viewer, чтобы включить анимацию.
##### Устарело :hourglass_flowing_sand:
— Для всех классов/функций, которые теперь могут принимать экземпляр Resource, все дополнительные параметры, являющиеся частью класса Resource, устарели и будут удалены в Cesium 1.44. Как правило, это включает параметры proxy, headers и query.
— Все функции загрузки низкого уровня, включая loadArrayBuffer, loadBlob, loadImage, loadJson, loadJsonp, loadText, loadXML и loadWithXhr, устарели и будут удалены в Cesium 1.44. Пожалуйста, используйте эквивалентные функции fetch в классе Resource.
##### Дополнения :tada:
— Добавлена экспериментальная поддержка [3D Tiles Vector и Geometry data](https://github.com/CesiumGS/3d-tiles/tree/3d-tiles-next/TileFormats/VectorData) ([#4665](https://github.com/CesiumGS/cesium/pull/4665)). Новые и изменённые API Cesium включают:
— Cesium3DTileStyle расширен и теперь включает стилизацию точечных объектов. Подробности см. в [спецификации стилей](https://github.com/CesiumGS/3d-tiles/tree/vector-tiles/Styling#vector-data).
— Cesium3DTileFeature может изменять свойства color и show для полигональных, полилинейных и геометрических объектов.
— Cesium3DTilePointFeature может изменять параметры стиля для точечного объекта.
— Добавлен необязательный режим для снижения нагрузки на CPU. [#6115](https://github.com/CesiumGS/cesium/pull/6115)
— Scene.requestRenderMode включает режим, который будет запрашивать новые кадры рендеринга только при изменениях сцены или когда изменение времени моделирования превышает scene.maximumRenderTimeChange.
— В режиме requestRender сцена будет явно запрашивать новый кадр рендеринга.
— Добавлены события Scene.preUpdate и Scene.postUpdate, которые возникают до и после обновления сцены соответственно. Сцена всегда обновляется перед выполнением потенциального рендера. Продолжайте прослушивать события Scene.preRender и Scene.postRender для рендеринга кадра сценой.
— Добавлено обновление CreditDisplay.update, которое обновляет отображение кредитов перед рендерингом нового кадра.
— Добавлено Globe.imageryLayersUpdatedEvent, которое возникает при добавлении, показе, скрытии, перемещении или удалении слоя изображений на глобусе. В запросе используется язык программирования JavaScript.
В ответе представлен перевод текста на русский язык:
или оба. Это относится только к векторным, геометрическим и пакетным наборам тайлов трёхмерных моделей. Ограничения для glTF, содержащегося в тайле b3dm:
- Требуются семантики POSITION и _BATCHID.
- Все индексы с одним и тем же идентификатором пакета должны занимать непрерывные участки индексного буфера.
- Игнорируются все шейдеры и техники. Сгенерированный шейдер просто умножает позицию на матрицу вида модели.
- Поддерживаются только расширения CESIUM_RTC и WEB3D_quantized_attributes.
- Поддерживается только один узел.
- На узел поддерживается только одна сетка.
- На сетку поддерживается только один примитив.
- Добавлено основанное на геометрической ошибке ослабление облачности точек и освещение купола глаз для облаков точек с использованием замены уточнения. [#6069](https://github.com/CesiumGS/cesium/pull/6069)
- Обновлены функции Viewer.zoomTo и Viewer.flyTo для использования Cesium3DTileset в качестве цели. [#6104](https://github.com/CesiumGS/cesium/pull/6104)
- Добавлена опция shouldAnimate в конструктор Viewer, чтобы указать, должен ли часы начинать анимацию при запуске. [#6154](https://github.com/CesiumGS/cesium/pull/6154)
- Добавлен атрибут Cesium3DTileset.ellipsoid, определяющий размер и форму земного шара. Его можно установить при создании и по умолчанию он равен эллипсоиду WGS84.
- Добавлена функция Plane.projectPointOntoPlane для проецирования позиции Cartesian3 на плоскость. [#6092](https://github.com/CesiumGS/cesium/pull/6092)
- Добавлена функция Cartesian3.projectVector для проецирования одного вектора на другой. [#6093](https://github.com/CesiumGS/cesium/pull/6093)
- Добавлено событие Cesium3DTileset.tileFailed, которое будет вызываться при сбое загрузки тайла. Объект, переданный слушателю события, будет иметь свойства url и message. Если нет слушателей событий, сообщения об ошибках будут выводиться на консоль. [#6088](https://github.com/CesiumGS/cesium/pull/6088)
- Добавлена функция AttributeCompression.zigZagDeltaDecode, которая будет декодировать буферы с дельта-кодированием и кодированием ZigZag на месте.
- Добавлены функции pack и unpack в OrientedBoundingBox для упаковки в плоский буфер и распаковки из него.
- Добавлена поддержка униформ вершинных шейдеров, когда tileset.colorBlendMode равен MIX или REPLACE. [#5874](https://github.com/CesiumGS/cesium/pull/5874)
- Добавлена функция ClippingPlaneCollection.isSupported для проверки поддержки рендеринга с обрезкой плоскостей. [#6084](https://github.com/CesiumGS/cesium/pull/6084)
- Добавлена функция Cartographic.toCartesian для преобразования из Cartographic в Cartesian3. [#6163](https://github.com/CesiumGS/cesius/pull/6163)
- Добавлен атрибут BoundingSphere.volume для вычисления объёма BoundingSphere. [#6069](https://github.com/CesiumGS/cesium/pull/6069)
- Добавлен новый файл для Кодекса поведения Cesium [Code of Conduct](https://github.com/CesiumGS/cesium/blob/master/CODE_OF_CONDUCT.md). [#6129](https://github.com/CesiumGS/cesium/pull/6129)
##### Исправления :wrench:
- Исправлена ошибка, которая могла привести к отсутствию тайлов на поверхности земного шара, особенно при начале работы с камерой, приближенной к поверхности. [#4969](https://github.com/CesiumGS/cesium/pull/4969)
- Исправлено применение полупрозрачного стиля к набору тайлов облака точек. [#6113](https://github.com/CesiumGS/cesium/pull/6113)
- Исправлен Sandcastle в IE 11. [#6169](https://github.com/CesiumGS/cesium/pull/6169)
- Исправлена ошибка анимации glTF, приводившая к дрожанию определённых анимаций. [#5740](https://github.com/CesiumGS/cesium/pull/5740)
- Исправлена ошибка при создании рекламных щитов и объектов модели без земного шара. [#6109](https://github.com/CesiumGS/cesium/pull/6109)
- Улучшен пример CZML Custom Properties Sandcastle. [#6086](https://github.com/CesiumGS/cesium/pull/6086)
- Улучшен пример системы частиц Sandcastle для лучшего визуального восприятия. [#6132](https://github.com/CesiumGS/cesium/pull/6132)
- Поведение функций Camera.move* и Camera.look* в 2D режиме улучшено. [#5884](https://github.com/CesiumGS/cesium/issues/5884)
- Функции Camera.moveStart и Camera.moveEnd теперь корректно вызывают события, даже когда камера находится близко к земле. [#4753](https://github.com/CesiumGS/cesium/issues/4753)
- Документация OrientedBoundingBox исправлена. ### 1.41 — 2018-01-02
* **Изменения, нарушающие работу кода:**
* Убраны параметры `text`, `imageUrl` и `link` из `Credit`, которые были объявлены устаревшими в Cesium 1.40. Вместо них следует использовать `options.text`, `options.imageUrl` и `options.link`.
* **Добавлена поддержка отсечения плоскостями.**
* В `ModelGraphics`, `Model`, `Cesium3DTileset` и `Globe` добавлено свойство `clippingPlanes`, которое задаёт `ClippingPlaneCollection` для выборочного отключения рендеринга.
* Добавлены `PlaneGeometry`, `PlaneOutlineGeometry`, `PlaneGeometryUpdater`, `PlaneOutlineGeometryUpdater`, `PlaneGraphics` и `Entity.plane` для визуализации плоскостей.
* Добавлен `Plane.transformPlane` для применения преобразования к плоскости.
* **Исправлено исключение для облака точек в IE.**
* **Исправлено поведение материалов глобуса при `Globe.enableLighting` = `false`.**
* **Устранена ошибка компиляции шейдера при выборе, когда материалы глобуса были включены.**
* **Исключение при включённом `invertClassification`, инвертированном цвете с альфой меньше 1,0 и изменении размера окна теперь исправлено.**
### 1.40 — 2017-12-01
* **Объявлены устаревшими:**
* Параметры `text`, `imageUrl` и `link` в `Credit` будут удалены в Cesium 1.41. Вместо них следует использовать `options.text`, `options.imageUrl` и `options.link`.
* **Добавлен `Globe.material` для применения материалов к глобусу/поверхности для затенения, например, по высоте или уклону.**
* **Поддержка CZML для `polyline.depthFailMaterial`, `label.scaleByDistance`, `distanceDisplayCondition` и `disableDepthTestDistance`.**
* **Исправлена ошибка, при которой выбор полигона, закреплённого на земле, мог привести к зависанию браузера.**
* **Исправлена ошибка в KML LookAt, где градусы и радианы смешивались при вычитании.**
* **Исправлена обработка файлов KMZ с отсутствующими объявлениями пространства имён `xsi`.**
* **Функция удаления повторяющихся объявлений пространств имён при загрузке KML или KMZ.**
* **Исправлен языковой детектор.**
* **Исправлена ошибка с моделями glTF с анимациями разной длины, которая вызывала ошибку.**
* **В `Model` и `Entity.model` добавлен параметр `clampAnimations`. При значении `false` анимации разной длины могут асинхронно зацикливаться на протяжении самой длинной анимации.**
* **Ошибка консоли `Invalid asm.js: Invalid member of stdlib` устранена путём перекомпиляции crunch.js с последней версией инструментария emscripten.**
* **Совместимость схемы `file:` с `joinUrls`.**
* **Пример Reverse Geocoder в Sandcastle.**
* **Возможность поддержки сенсорных событий в слоях изображений Split Sandcastle example.**
* **Новый тег `@experimental` в документации. Небольшая часть API Cesium, помеченная таким образом, может быть изменена без объявления устаревшей. См. раздел «Кодирование».** **1.39 — 2017-11-01**
* Cesium теперь официально поддерживает webpack. Подробнее см. в нашей статье «Интеграция Cesium и Webpack» на сайте cesium.com.
* Добавлена поддержка определения языка справа налево для надписей, в настоящее время поддерживаются иврит и арабский. Чтобы включить эту функцию, установите `Cesium.Label.enableRightToLeftDetection = true` в начале приложения.
* Исправлена обработка файлов KML с отсутствующими объявлениями пространства имён `xsi`.
* Исправлен баг, из-за которого наложения KML искажались при применении поворота.
* Исправлен баг, когда метки KML без указанного значка отображались со значком по умолчанию.
* Изменена загрузка KML, чтобы игнорировать сбои NetworkLink и продолжать загрузку остальной части документа.
* Добавлена возможность загрузки ресурсов Cesium из локальной файловой системы, если это разрешено настройками безопасности.
* Добавлено два новых свойства в `ImageryLayer`, которые позволяют настраивать фильтры текстур для повышения и понижения дискретизации фрагментов изображений: `minificationFilter` и `magnificationFilter`. Возможные значения: `LINEAR` (по умолчанию) и `NEAREST`.
* Устранены мерцающие артефакты с наборами тайлов 3D Tiles с тонкими стенами.
* Исправлено яркое освещение тумана при включённом освещении местности и добавлена настройка `Fog.minimumBrightness`, которая влияет на яркость тумана в полной темноте.
* Исправлено использование клавиш со стрелками в виджете геокодера для выбора поисковых предложений.
* Добавлена поддержка свойства `parentUrl` слоя в `CesiumTerrainProvider`, что позволяет компоновать наборы тайлов.
* В `Scene` добавлены параметры `invertClassification` и `invertClassificationColor`. Когда `invertClassification` имеет значение `true`, цвет любой геометрии 3D Tiles, не классифицированной с помощью `ClassificationPrimitive` или `GroundPrimitive`, умножается на `invertClassificationColor`.
* В UrlTemplateImageryProvider добавлено свойство `customTags`, которое позволяет использовать пользовательские ключевые слова в шаблоне URL.
* В Scene добавлены свойства `eyeSeparation` и `focalLength` для настройки параметров VR.
* Улучшен пример Reference Properties CZML.
**1.38 — 2017-10-02**
* Изменения, нарушающие работу:
* `Scene/CullingVolume` был удалён. Используйте `Core/CullingVolume`.
* `Scene/OrthographicFrustum` был удалён. Используйте `Core/OrthographicFrustum`.
* `Scene/OrthographicOffCenterFrustum` был удалён. Используйте `Core/OrthographicOffCenterFrustum`.
* `Scene/PerspectiveFrustum` был удалён. Используйте `Core/PerspectiveFrustum`.
* `Scene/PerspectiveOffCenterFrustum` был удалён. Используйте `Core/PerspectiveOffCenterFrustum`.
* Добавлена поддержка в CZML для выражения ориентации как вектора скорости объекта с использованием синтаксиса `velocityReference`.
* Исправлены ошибки обработки CZML `velocityReference` в интервале. Способность добавлять анимацию в ModelAnimationCollection по индексу.
Исправлена ошибка в ModelAnimationCollection, из-за которой добавление анимации по её имени вызывало ошибку.
Устранена проблема в Internet Explorer и Edge с загрузкой строк Unicode в типизированных массивах, что влияло на значения таблицы Batch Table 3D Tiles.
Масштабирование теперь поддерживает направление камеры, наклон и крен.
Исправлен сбой в PolylineCollection, препятствующий отображению более 16 тыс. точек в одной коллекции.
Устранён сбой облака точек 3D Tiles, приводивший к появлению посторонней точки в центре экрана на определённом оборудовании.
Исправлено удаление нескольких слушателей событий внутри обратных вызовов событий.
Запуск buildApps теперь создаёт встроенную версию Sandcastle, которая использует встроенную версию Cesium для повышения производительности.
Исправлена проблема обхода набора тайлов при отключённой оптимизации skipLevelOfDetail.
**1.37 — 2017-09-01**
Изменения:
* Передача options.clock при создании нового экземпляра Viewer удалена, вместо этого передаётся options.clockViewModel.
* Удалён GoogleEarthImageryProvider, используйте GoogleEarthEnterpriseMapsProvider вместо него.
* Параметр throttleRequest удалён из TerrainProvider.requestTileGeometry и унаследованных провайдеров местности. Он заменён необязательным объектом Request. Установите свойство throttle запроса в true, чтобы регулировать запросы.
* Возможность предоставления Promise для параметра options.url функции loadWithXhr и для параметров url функций loadArrayBuffer, loadBlob, loadImageViaBlob, loadText, loadJson, loadXML, loadImage, loadCRN, loadKTX и loadCubeMap удалена. Вместо этого url должен быть строкой.
* Добавлен classificationType в ClassificationPrimitive и GroundPrimitive, чтобы выбрать, будет ли классифицироваться местность, 3D Tiles или и то, и другое.
* Исправлен выбор глубины на 3D Tiles.
* Устранена ошибка прозрачности glTF модели.
* Исправлена ошибка replaceState, которая приводила к сбою демонстрационного приложения CesiumViewer в Safari и iOS.
* Исправлено несколько проблем с обходом 3D Tiles для наборов тайлов, использующих аддитивное уточнение.
* Исправлена проблема с обходом 3D Tiles, когда ненужные дочерние элементы загружались вне поля зрения.
* Тип идентификатора Entity изменён на String в EntityCollection и CompositeEntityCollection.
* Решена проблема, когда глобус не был определён, Model и BillboardCollection выдавали ошибку.
* Исправлена потеря ссылки кэша glTF Model на буферные данные модели.
* Некоторые проблемы с disableDepthTestDistance решены.
* Добавлено несколько новых стилей Bing Maps: CANVAS_DARK, CANVAS_LIGHT и CANVAS_GRAY.
* Внесены небольшие улучшения в атмосферу.
* Исправлена ошибка, из-за которой разделение изображений работало некорректно, когда пиксели CSS не были эквивалентны пикселям буфера рисования WebGL, например, на дисплеях с высоким DPI в Microsoft Edge и Internet Explorer.
* Добавлена поддержка Cesium3DTileset.loadJson для переопределения значений по умолчанию. Тайлсет поведение при загрузке.
* Исправлена загрузка бинарных glTF-файлов, содержащих текстуры CRN или KTX.
* Исправлены вычисления зеркальности для определённых моделей с использованием расширения `KHR_materials_common`.
* Устранена ошибка выбора в демо Sandcastle для взаимодействия с 3D тайлсами.
* Обновлён knockout с версии 3.4.0 до 3.4.2.
**1.36 — 2017-08-01**
* **Изменения:**
* Функция `Quaternion.fromHeadingPitchRoll(heading, pitch, roll, result)` была удалена. Вместо неё следует использовать функцию `Quaternion.fromHeadingPitchRoll(hpr, result)`, где `hpr` — это `HeadingPitchRoll`.
* Функция `Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, result)` была удалена. Вместо неё следует использовать функцию `Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)`, где `fixedFrameTransform` — это матрица преобразования 4x4 (см. `Transforms.localFrameToFixedFrameGenerator`).
* Функция `Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, result)` была удалена. Вместо неё следует использовать функцию `Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)`, где `fixedFrameTransform` — это матрица преобразования 4x4 (см. `Transforms.localFrameToFixedFrameGenerator`).
* Свойства `color`, `show` и `pointSize` объекта `Cesium3DTileStyle` больше не инициализируются значениями по умолчанию.
* **Устаревшее:**
* `Scene/CullingVolume` устарело и будет удалено в версии 1.38. Следует использовать `Core/CullingVolume`.
* `Scene/OrthographicFrustum` устарело и будет удалено в версии 1.38. Следует использовать `Core/OrthographicFrustum`.
* `Scene/OrthographicOffCenterFrustum` устарело и будет удалено в версии 1.38. Следует использовать `Core/OrthographicOffCenterFustrum`.
* `Scene/PerspectiveFrustum` устарело и будет удалено в версии 1.38. Следует использовать `Core/PerspectiveFrustum`.
* `Scene/PerspectiveOffCenterFrustum` устарело и будет удалено в версии 1.38. Следует использовать `Core/PerspectiveOffCenterFrustum`.
* **Новое:** добавлена поддержка glTF 2.0, включая физически обоснованный рендеринг материалов, морфинг целей и соответствующее обновление моделей glTF 1.0 до версии 2.0.
* Добавлен `ClassificationPrimitive`, который определяет объём и рисует пересечение объёма с рельефом или 3D тайлами.
* Добавлено событие `tileLoad` в `Cesium3DTileset`.
* Устранена проблема, когда сцена мигала при добавлении меток.
* Исправлено позиционирование меток при изменении высоты привязки.
* Позиционирование меток исправлено при использовании `HeightReference.CLAMP_TO_GROUND` и отсутствии позиции.
* Исправлен динамический полилайн с материалом тире полилайна.
* Добавлена возможность указать ширину и высоту в `scene.pick`.
* Исправлено `Viewer.flyTo`, которое не учитывало ограничения масштабирования и сбрасывало minimumZoomDistance, если камера увеличивала масштаб за пределы minimumZoomDistance.
* Добавлена возможность показывать URL тайлов в инспекторе 3D тайлов.
* Исправлена ошибка чтения текстур, сжатых CRN, с несколькими уровнями mip.
* Устранена проблема, из-за которой составные 3D тайлы, содержащие экземпляры 3D тайлов с внешней моделью, не загружали модель.
* Поведение `Cesium3DTilesInspector` выбирает первый тайлсэт, наведённый курсором, если тайлс не указан.
* Добавлена функция `Entity.computeModelMatrix`, которая возвращает матрицу модели, представляющую модель. В запросе представлен текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — английский.
В результате перевода на русский язык с сохранением оригинального форматирования текста получается следующее:
Изменения в версии 1.35.2 от 11 июля 2017 года:
— Это релиз только для npm, предназначенный для исправления проблемы с использованием Cesium в Node.js.
— Исправлена ошибка, из-за которой Cesium не загружался в некоторых конфигурациях webpack под Node.js. #5593
— Исправлена ошибка, при которой сжатые текстуры модели не отображались. #5596
— Документация для OrthographicFrustum исправлена. #5586
Изменения в версии 1.35.1 от 5 июля 2017 года:
— Этот релиз предназначен только для npm и предназначен для исправления проблем с развёртыванием версии 1.35. Кода изменений нет.
Изменения в версии 1.35 от 5 июля 2017 года:
— Изменения, нарушающие работу:
— JulianDate.fromIso8601 по умолчанию будет использовать полночь UTC, если время не указано, чтобы соответствовать спецификации Javascript Date. Необходимо указать местное время полуночи, чтобы добиться старого поведения.
— Устарело:
— GoogleEarthImageryProvider устарел и будет удалён в Cesium 1.37, вместо него следует использовать GoogleEarthEnterpriseMapsProvider.
— Параметр throttleRequest для TerrainProvider.requestTileGeometry, CesiumTerrainProvider.requestTileGeometry, VRTheWorldTerrainProvider.requestTileGeometry и EllipsoidTerrainProvider.requestTileGeometry устарел и будет заменён необязательным объектом Request. Параметр throttleRequests будет удалён в 1.37. Вместо этого установите для свойства запроса throttle значение true, чтобы регулировать запросы.
— Возможность предоставить Promise для параметра options.url в loadWithXhr и для параметра url в loadArrayBuffer, loadBlob, loadImageViaBlob, loadText, loadJson, loadXML, loadImage, loadCRN, loadKTX и loadCubeMap устарела. Это будет удалено в 1.37, теперь url должен быть строкой.
— Добавлена поддержка 3D Tiles для потоковой передачи больших гетерогенных трёхмерных геопространственных наборов данных (#5308). См. новые примеры Sandcastle (http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=3D%20Tiles%20Photogrammetry&label=3D%20Tiles). Новые API Cesium:
— Cesium3DTileset
— Cesium3DTileStyle, StyleExpression, Expression и ConditionsExpression
— Cesium3DTile
— Cesium3DTileContent
— Cesium3DTileFeature
— Cesium3DTilesInspector, Cesium3DTilesInspectorViewModel и viewerCesium3DTilesInspectorMixin
— Cesium3DTileColorBlendMode
— Добавлена система частиц для таких эффектов, как дым, огонь, искры и т. д. См. ParticleSystem, Particle, ParticleBurst, BoxEmitter, CircleEmitter, ConeEmitter, ParticleEmitter и SphereEmitter, а также новые примеры Sandcastle: Particle. Систем] (http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Particle System.html&label=Showcases) и [Система частиц Фейерверк] (http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Particle System Fireworks.html&label=Showcases).
[#5212]
- Добавлены параметры options.clock, options.times и options.dimensions в WebMapTileServiceImageryProvider для обработки динамических и статических значений времени для измерений.
- В loadWithXhr добавлен параметр options.request, а в loadArrayBuffer, loadBlob, loadImageViaBlob, loadText, loadJson, loadJsonp, loadXML, loadImageFromTypedArray, loadImage, loadCRN и loadKTX — параметр request.
— CzmlDataSource и KmlDataSource теперь загружают функции с дополнительным объектом запроса, который будет добавлять параметры запроса ко всем сетевым запросам. [#5419], [#5434]
— Добавлена демонстрация Sandcastle для установки времени с помощью API Clock [#5457];
— добавлена демонстрация Sandcastle для данных ArcticDEM. [#5224]
— В TimeIntervalCollection добавлены fromIso8601, fromIso8601DateArray и fromIso8601DurationArray для обработки различных способов указания групп интервалов в формате ISO8601.
— в TimeIntervalCollection добавлено fromJulianDateArray для генерации интервалов из списка дат.
— Исправлена ошибка геокодера, чтобы он мог точно обрабатывать вводы NSEW [#5407]
— исправлена ошибка, когда выборка ломалась, когда Солнце появлялось в поле зрения [#5478]
— исправлена ошибка, при которой кластеры выборки возвращали undefined вместо списка кластеризованных объектов. [#5286]
— исправлена ошибка, из-за которой, если полилинии были настроены на следование поверхности неопределённого глобуса, Cesium выдавал исключение. [#5413]
— уменьшено количество эффекта постобработки солнечного сияния вблизи горизонта. [#5381]
— исправлена ошибка, при которой масштабирование камеры работало неправильно, когда высота дисплея была больше ширины дисплея [#5421]
— обновлены типы MIME glTF/glb. [#5420]
— добавлен Cesium.Math.randomBetween.
— изменено defaultValue для проверки как undefined, так и null. [#5551]
— функция throttleRequestByServer удалена. Вместо этого передайте объект Request с установленным значением throttleByServer равным true любой из следующих функций загрузки: loadWithXhr, loadArrayBuffer, loadBlob, loadImageViaBlob, loadText, loadJson, loadJsonp, loadXML, loadImageFromTypedArray, loadImage, loadCRN и loadKTX.
### 1.34 — 2017-06-01
— Устарело
— Передача options.clock при создании нового экземпляра Viewer устарела и будет удалена в Cesium 1.37, вместо этого передавайте options.clockViewModel.
— Решена проблема, когда полилинии в PolylineCollection игнорировали дальнее расстояние при обновлении условия отображения расстояния. [#5283]
— устранён сбой при вызове Camera.pickEllipsoid с холстом размером 0.
— исправление BoundingSphere.fromOrientedBoundingBox. [#5334]
— решена проблема, при которой полилинии не обновлялись при обновлении модели матрицы PolylineCollection. [#5327]
— устранена ошибка, при которой добавление закреплённой метки без позиции отображалось бы в предыдущем положении закреплённой позиции метки. [#5338]
— исправлен сбой прозрачности для определённых типов материалов. [#5335]
— устранение проблемы выбора полилиний, использующих внешний вид сбоя глубины. [#5337]
— устранён сбой при морфинге. Из обзора Columbus в 3D.
* Исправлена ошибка, из-за которой не загружались описания KML с относительными путями.
* Устранена проблема, когда вид камеры мог быть недействительным в последнем кадре анимации.
* Решена проблема, при которой использование материала depth fail для полилиний вызывало сбой в Edge.
* Исправлен сбой, возникавший, когда `EllipsoidGeometry` и `EllipsoidOutlineGeometry` получали значения с плавающей запятой, ожидая целые числа.
* Исправлено несоответствие, при котором рекламные щиты были неправильно выровнены.
* Устранена неполадка, при которой полупрозрачные объекты могли мерцать при выборе при перемещении мыши.
* Поправлена ошибка, при которой рекламные щиты с установленным значением `sizeInMeters` равным true перемещались вверх при уменьшении масштаба.
* Исправлена проблема, при которой `SampledProperty.setInterpolationOptions` не игнорирует неопределённые параметры.
* Добавлена опция `basePath` в `Cesium.Model.fromGltf`.
**1.33 — 2017-05-01**
* **Изменения:**
* Удалены свойства left, right, bottom и top из `OrthographicFrustum`. Используйте `OrthographicOffCenterFrustum` вместо этого.
* Добавлены `GoogleEarthEnterpriseTerrainProvider` и `GoogleEarthEnterpriseImageryProvider` для чтения данных с серверов Google Earth Enterprise.
* Поддержка пунктирных полилиний.
* Добавлен тип материала `PolylineDash`.
* Добавлено `PolylineDashMaterialProperty` в API Entity.
* Введено свойство CZML `polylineDash`.
* Добавлено `disableDepthTestDistance` к рекламным щитам, точкам и меткам. Это устанавливает расстояние до камеры, на котором будет отключён тест глубины. Установка его в ноль (по умолчанию) всегда включает тест глубины. Установка в `Number.POSITVE_INFINITY` никогда не включит тест глубины. Также добавлено `scene.minimumDisableDepthTestDistance`, чтобы изменить значение по умолчанию с нуля.
* Введено `depthFailMaterial` для линейных объектов, которое является материалом, используемым для рендеринга линии, если она не проходит тест глубины.
* Исправлены рекламные щиты, которые изначально не группировались.
* Устранена проблема с отображением сообщения об ошибке токена `MapboxImageryProvider` по умолчанию.
* Исправлена ошибка в формуле преобразования в `Matrix3.fromHeadingPitchRoll`.
* Обновлён FXAA до версии 3.11.
* `Scene.pickPosition` теперь кэширует результаты за кадр для повышения производительности.
**1.32 — 2017-04-03**
* *Устаревшее:*
* Свойства `left`, `right`, `bottom` и `top` `OrthographicFrustum` устарели и будут удалены в версии 1.33. Вместо этого используйте `OrthographicOffCenterFrustum`.
* *Изменения:*
* Удалено `ArcGisImageServerTerrainProvider`.
* Свойства верхнего уровня `Entity`, созданного `GeoJsonDataSource`, теперь являются экземплярами `ConstantProperty`, а не необработанными значениями.
* Добавлена поддержка ортографической проекции в 3D и обзоре Columbus.
* Установите `projectionPicker` в значение `true` в параметрах при создании `Viewer`, чтобы добавить виджет, который будет переключать проекции.
* Вызовите `switchToOrthographicFrustum` или `switchToPerspectiveFrustum` на `Camera`, чтобы изменить проекции.
* Добавлена поддержка пользовательских свойств, зависящих от времени, в CZML. # 1.31 — 2017-03-01
**Были добавлены следующие функции:**
* В `Camera.flyTo` и `Camera.flyToBoundingSphere` были добавлены новые параметры полёта: `flyOverLongitude`, `flyOverLongitudeWeight` и `pitchAdjustHeight`.
* Было добавлено событие `Viewer.trackedEntityChanged`, которое возникает при изменении значения `viewer.trackedEntity`.
* Была добавлена константа `Camera.DEFAULT_OFFSET` для отображения объектов с ограничивающими сферами по умолчанию.
**Также были исправлены следующие проблемы:**
* Проблема с `TileBoundingBox`, из-за которой в некоторых местах исчезал ландшафт.
* Перекрытие рекламных щитов при смешивании.
* Проблема с `PinBuilder`, когда изображения на вставках могли иметь низкоальфа-полосы на непрозрачном фоне.
* Кластеризация рекламных щитов, точек и меток в 2D и Columbus View.
* Рендеринг `GroundPrimitive` в 2D и Columbus View.
* Проблема отслеживания камеры за динамическими эллипсоидами.
* Проблемы с imagerySplitPosition и международной линией перемены дат в режиме 2D.
* Ошибка в `ModelAnimationCache`, вызывающая обращение разных анимаций к одной и той же анимации.
* `ConstantProperty` теперь предоставляет методы `valueOf` и `toString`, которые возвращают постоянное значение.
* Улучшены артефакты глубины между непрозрачными и полупрозрачными примитивами.
* Исправлена проблема с сжатыми текстурами в IE11.
* Исправлена ошибка в `Quaternion.fromHeadingPitchRoll`, которая приводила к ошибочному выбросу исключения при передаче отдельных углов в неминифицированной / отладочной сборке.
* Исправлена ошибка, которая вызывала исключение в `CesiumInspectorViewModel` при использовании кнопок NW / NE / SW / SE / Parent для перехода к тайлу местности, который ещё не загружен.
* Теперь `QuadtreePrimitive` использует `frameState.afterRender` для запуска `tileLoadProgressEvent`.
#### Устарело:
* Функция `Quaternion.fromHeadingPitchRoll(heading, pitch, roll, result)` будет удалена в версии 1.33. Вместо неё следует использовать `Quaternion.fromHeadingPitchRoll(hpr, result)`, где `hpr` — это `HeadingPitchRoll`.
* Функция `Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, result)` также будет удалена в версии 1.33. Следует использовать `Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)`, где `fixedFrameTransform` — матрица преобразования 4x4 (см. `Transforms.localFrameToFixedFrameGenerator`).
* Функция `Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, result)` тоже будет удалена в версии 1.33. Её следует заменить на `Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)`, где `fixedFrameTransform` — матрица преобразования 4x4 (см. `Transforms.localFrameToFixedFrameGenerator`).
* `ArcGisImageServerTerrainProvider` будет удалён в версии 1.32 из-за отсутствия поддержки TIFF в веб-браузерах.
#### Изменения:
* Исправлено написание `Color.FUCHSIA` вместо `Color.FUSCHIA`.
* Из `ScreenSpaceEventType` удалены перечисления `MIDDLE_DOUBLE_CLICK` и `RIGHT_DOUBLE_CLICK`.
* Удалена функция `GeometryPipeline.computeBinormalAndTangent`. **1.30 — 2017-02-01**
* **Изменения:**
* *Устаревшее:*
* Свойства `url` и `key` будут удалены из `GeocoderViewModel` в версии 1.31. Эти свойства будут доступны в сервисах геокодирования, которые их поддерживают, таких как `BingMapsGeocoderService`.
* Функция `GeometryPipeline.computeBinormalAndTangent` будет удалена в версии 1.31. Вместо неё следует использовать `GeometryPipeline.createTangentAndBitangent`.
* Перечисления `MIDDLE_DOUBLE_CLICK` и `RIGHT_DOUBLE_CLICK` из `ScreenSpaceEventType` устарели и будут удалены в версии 1.31.
* *Критические изменения:*
* Из `Transform.headingPitchRollToFixedFrame` и `Transform.headingPitchRollQuaternion` были удалены отдельные параметры `heading`, `pitch`, `roll`. Вместо них следует передавать объект `HeadingPitchRoll`.
* Свойство `binormal` было переименовано в `bitangent` для `Geometry` и `VertexFormat`.
* В `CesiumInspectorViewModel` был удалён или изменён ряд свойств. **1.29 — 2017-01-02**
Улучшение 3D-моделей: добавлена возможность наложения модели (**Model**).
* *ShadowMap* конструктор стал закрытым.
* Добавлена функция *sampleTerrainMostDetailed* для выборки высоты массива позиций с использованием наилучших доступных данных о рельефе в каждой точке. Для этого требуется *TerrainProvider* со свойством *availability*.
* Прозрачные части рекламных щитов, надписей и точек больше не перекрывают части сцены за ними.
* Добавлено свойство *blendOption* в *BillboardCollection*, *LabelCollection* и *PointPrimitiveCollection*. По умолчанию используется *BlendOption.OPAQUE_AND_TRANSLUCENT*. Однако, если все рекламные щиты, надписи или точки полностью непрозрачны или полностью прозрачны, *blendOption* можно изменить на *BlendOption.OPAQUE* или *BlendOption.TRANSLUCENT* соответственно, чтобы повысить производительность до 2 раз.
* Поддержка пользовательских сервисов геокодирования и автозаполнения (см. пример Sandcastle). Добавлены *GeocoderService* — интерфейс для геокодеров, а также реализации *BingMapsGeocoderService* и *CartographicGeocoderService*.
* Возможность рисовать слой изображений с разделителем, чтобы слои отображались только слева или справа от разделителя. См. *ImageryLayer.splitDirection*, *Scene.imagerySplitPosition* и пример Sandcastle.
* Исправлена ошибка, из-за которой *GroundPrimitives* неправильно отображались или исчезали при разных уровнях масштабирования.
* Теперь *TerrainProvider* дополнительно предоставляет свойство *availability*, которое можно использовать для запроса уровня рельефа, доступного в определённом месте или прямоугольнике. В настоящее время это свойство предоставляет только *CesiumTerrainProvider*.
* Поддержка WMS версии 1.3 путём использования параметра запроса *CRS* вместо *SRS* для запроса проекции. *SRS* по-прежнему используется для более старых версий.
* Исправлен баг, из-за которого все модели использовали один и тот же цвет выделения.
* Исправлено некорректное выделение и зависание выделения при использовании атмосферы неба.
* Загрузка KML теперь работает корректно, когда цвет является пустой строкой.
* Исправлена ошибка, которая могла вызвать исключение «readyImagery is not actually ready» при быстром масштабировании мимо максимального доступного уровня изображений слоя изображений вблизи полюсов.
* Исправлена проблема, влияющая на динамическую графику с временной динамической матрицей модели.
* Исправлена видимость выпадающего списка автозаполнения *Geocoder* в Firefox.
* Добавлен *Rectangle.fromRadians*.
* Обновлён морфинг, так что теперь вид по умолчанию в Columbus View наклонён.
* 2D и поддержка Columbus View для моделей, использующих расширение RTC или чьи вершины находятся в координатах WGS84.
* Атрибут *perInstanceAttribute* отладки теперь необязателен и по умолчанию имеет значение *false*.
* Исправлена ошибка, приводившая к сбою при включении *debugShowFrustums* с OIT.
* Добавлена возможность запуска модульных тестов с помощью WebGL Stub, который делает все вызовы WebGL noop и игнорирует тестовые ожидания, основанные на чтении из WebGL. Используйте веб-ссылку из основного index.html или запустите с *npm run test-webgl-stub*. with a color/translucency. Добавлены свойства `color`, `colorBlendMode` и `colorBlendAmount` в `Model`, `ModelGraphics` и CZML. Также добавлено перечисление `ColorBlendMode`.
- Добавлена возможность рендеринга модели с силуэтом. В `Model`, `ModelGraphics` и CZML добавлены свойства `silhouetteColor` и `silhouetteSize`.
- Улучшены метки:
- В слои примитивов, сущностей и CZML добавлены новые свойства меток `showBackground`, `backgroundColor` и `backgroundPadding`.
- Добавлена поддержка новых строк (`\n`) в метках Cesium и CZML.
- Добавлено новое перечисление `VerticalOrigin.BASELINE`. Ранее `VerticalOrigin.BOTTOM` иногда выравнивался по базовой линии в зависимости от содержимого метки.
- Исправлена прозрачность в Firefox 50.
- Исправлено вращение текстуры для `RectangleGeometry`.
- Исправлен баг, из-за которого у рекламных щитов на местности было неправильное смещение.
- Исправлен баг, при котором `globe.getHeight` неправильно возвращал `undefined`.
- Исправлен сбой при использовании визуализации пути сущности с использованием ссылочных свойств.
- Исправлена ошибка, приводившая к некорректному отображению `GroundPrimitive` в системах без расширения `WEBGL_depth_texture`.
- По умолчанию добавлен водяной знак, уведомляющий пользователей о необходимости регистрации для получения собственного токена Mapbox.
- Исправлены glTF-модели с обтягиванием, которые использовали `bindShapeMatrix`.
- Исправлена ошибка, которая могла вызвать исключение «readyImagery is not actually ready» при некоторых конфигурациях слоёв изображений.
- Исправлено `Rectangle.union`, чтобы правильно учитывать прямоугольники, пересекающие IDL.
- Исправлены всплывающие подсказки для миниатюр галереи в Sandcastle.
- `DataSourceClock.getValue` теперь сохраняет предоставленные свойства `result`, когда его свойства не определены.
- Добавлена функция `divideComponents` в `Cartesian2`, `Cartesian3` и `Cartesian4`.
- Добавлено перечисление `WebGLConstants`. Ранее это было частью закрытого API Renderer.
### 1.28 — 2016-12-01
- Улучшен порядок загрузки местности и изображений, особенно когда местность уже полностью загружена и загружается новый слой изображений. Это приводит к сокращению времени загрузки на 25% во многих случаях.
- Улучшено визуальное качество рекламных щитов, меток и точечных примитивов.
- Исправлены размеры рекламных щитов с нечётной шириной и высотой, которые неправильно округлялись в большую сторону.
- Изменён тест глубины с `LESS` на `LEQUAL`, что позволяет перекрывать глифы меток одинаковой глубины.
- Позиции глифов меток были скорректированы и исправлены.
- `TextureAtlas.borderWidthInPixels` всегда применялся к верхним и правым краям каждой внутренней текстуры, но теперь также применяется к нижним и левым краям всего TextureAtlas, гарантируя наличие границ со всех сторон независимо от положения внутри атласа.
- При отсутствии поддержки текстур с плавающей точкой происходит возврат к упаковке чисел с плавающей запятой в текстуру без знака.
- Добавлена поддержка сохранения html и css в GitHub Gists.
- Исправлен `Cartographic.fromCartesian`, когда декартовы координаты не находятся на поверхности эллипсоида.
### 1.27 — 2016-11-01
- Устарело:
- Отдельные заголовок, тангаж и крен. ### 1.26 — 2016-10-03
* **Исправленные ошибки:**
* Исправлена ошибка при переходе от 2D к 3D морфингу.
* Исправлено вращение `RectangleGeometry`, когда прямоугольник находится близко к международной линии перемены дат.
* Добавлены свойства `clusterBillboards`, `clusterLabels` и `cluserPoints` в `EntityCluster` для выборочного кластеризации объектов экранного пространства.
* Предотвращено выполнение поведения устройства/браузера по умолчанию при обработке сенсорного события/жеста «pinch».
* Исправлен теневой алиасинг, когда полигональный сдвиг не применялся.
* Удалён ненужный перепроектирование тайлов изображений Web Mercator в географическую проекцию при загрузке. Это должно немного улучшить визуальное качество и производительность загрузки.
* Улучшена юзабилити `Geocoder` путём выбора текста по клику.
* Оптимизирована версия `Rectangle.intersection` для более ограниченного ввода.
* Исправлено предупреждение при использовании Webpack.
* **Устаревшие функции:**
* Параметр `scene` для создания `BillboardVisualizer`, `LabelVisualizer` и `PointVisualizer` устарел и будет удалён в версии 1.28. Вместо этого передайте экземпляр `EntityCluster`.
* **Изменения, нарушающие работу:**
* Теперь требуется поддержка выборки текстур вершин для рендеринга полилиний. Максимальное количество единиц изображения текстур вершин должно быть больше нуля.
* Свойства `castShadows` и `receiveShadows` удалены из `Model`, `Primitive` и `Globe`. Вместо этого используйте `shadows` с перечислением `ShadowMode`, например, `model.shadows = ShadowMode.ENABLED`.
* `Viewer.terrainShadows` теперь использует перечисление `ShadowMode` вместо логического значения, например, `viewer.terrainShadows = ShadowMode.RECEIVE_ONLY`.
* **Добавлена поддержка:**
* Кластеризация `Billboard`, `Label` и `Point` сущностей.
* Условия отображения расстояния для всех примитивов, чтобы определить интервал диапазона от камеры, когда он будет виден.
* **Другие изменения:**
* По умолчанию гамма-коррекция для аэрофотоснимков Bing Maps больше не применяется, поскольку она больше не улучшает текущие версии тайлов. Чтобы восстановить предыдущий вид, установите свойство `defaultGamma` вашего экземпляра `BingMapsImageryProvider` равным 1,3.
* Исправлена ошибка, которая могла привести к неправильным высотам местности при использовании `HeightmapTerrainData` с кодировкой, в которой фактические высоты были равны минимальной представимой высоте.
* Исправлена ошибка в `AttributeCompression.compressTextureCoordinates` и `decompressTextureCoordinates`, которая могла вызвать небольшую неточность в закодированных координатах текстуры.
* Исправлена ошибка, из-за которой просмотр модели с прозрачной геометрией приводил к сбою.
* Коллекция `TrustedServer` контролирует, какие серверы должны иметь `withCredential`, установленное на `true` для запросов XHR.
* Исправлено вращение рекламных щитов при измерении в метрах.
* В `writeTextToCanvas` добавлены свойства `backgroundColor` и `borderWidth`.
* Исправлены сенсорные события временной шкалы.
* Исправлена ошибка, неправильно ограничивающая широты в KML `<GroundOverlay>` до диапазона -PI..PI. Теперь правильно ограничивает до -PI/2..PI/2.
* Добавлена функция `CesiumMath.clampToLatitudeRange` для удобства ограничения угла в радианах до допустимых широт.
* Для визуализации области просмотра камеры добавлен `DebugCameraPrimitive`.
### 1.25 — 2016-09-01
* **Нарушающие изменения:**
* Изменилось количество и порядок аргументов, передаваемых в `KmlDataSource` `unsupportedNodeEvent` слушателям, что позволяет... **Улучшение обработки неподдерживаемых функций KML**
* Изменение рекламных щитов и надписей, привязанных к рельефу: по умолчанию для свойства `verticalOrigin` установлено значение `CENTER`, а не `BOTTOM`.
**Устаревшие функции**
* Устаревшие свойства `castShadows` и `receiveShadows` в `Model`, `Primitive` и `Globe`. Они будут удалены в версии 1.26. Вместо них следует использовать свойство `shadows` с перечислением `ShadowMode`, например: `model.shadows = ShadowMode.ENABLED`.
* Теперь `Viewer.terrainShadows` использует перечисление `ShadowMode` вместо логического значения. Поддержка логических значений будет удалена в версии 1.26.
**Обновления онлайн-конвертера моделей**
Онлайн-конвертер моделей теперь преобразует модели OBJ в glTF с помощью `obj2gltf` (https://github.com/CesiumGS/OBJ2GLTF), а также оптимизирует существующие модели glTF с помощью gltf-pipeline (https://github.com/CesiumGS/gltf-pipeline). Добавлена возможность запекания окклюзии окружения на модель glTF. Также добавлена возможность сжатия геометрии с использованием расширения WEB3D_quantized_attributes (https://github.com/KhronosGroup/glTF/blob/master/extensions/Vendor/WEB3D_quantized_attributes/README.md) glTF.
**Улучшение качества надписей для наклонных и курсивных шрифтов** (#3782)
Добавлена поддержка свойства `shadows` для API сущностей для `Box`, `Corridor`, `Cylinder`, `Ellipse`, `Ellipsoid`, `Polygon`, `Polyline`, `PoylineVolume`, `Rectangle` и `Wall` (#4005).
**Изменения в камере**
* Добавлен метод `Camera.cancelFlight` для отмены существующего полёта камеры, если он существует.
* Исправлены перекрывающиеся полёты камеры путём отмены предыдущего полёта при создании нового.
* Полёты камеры теперь отключают столкновение с рельефом до тех пор, пока весь рельеф в области не завершит загрузку. Это предотвращает перемещение камеры над низкодетализированным рельефом при приближении к высокодетализированному рельефу. (#4075)
* Устранён сбой, который мог произойти при быстром переключении видимости изображений. (#4083)
* Исправлена ошибка, возникающая, если KML имеет привязанную к земле LineString с цветом. (#4131)
* Введена логика в `KmlDataSource`, по умолчанию устанавливающая узел KML Feature в скрытое состояние, если все предки видимы. Это лучше соответствует спецификации KML.
* Исправлено положение точечных объектов KML с режимом высоты `relativeToGround` и `clampToGround`.
* Добавлено `GeocoderViewModel.keepExpanded`, которое при установке в true всегда будет держать Geocoder в развёрнутом состоянии.
* Добавлена поддержка `INT` и `UNSIGNED_INT` в `ComponentDatatype`.
* Добавлен `ComponentDatatype.fromName` для получения `ComponentDatatype` по его имени.
* Устранён сбой, вызванный драпированием динамической геометрии над рельефом. (#4255)
### Версия 1.24 — 2016-08-01
* Добавлена поддержка в CZML для выражения `BillboardGraphics.alignedAxis` как вектора скорости объекта с использованием синтаксиса `velocityReference`.
* Добавлено свойство `urlSchemeZeroPadding` в `UrlTemplateImageryProvider`, позволяющее нумеровать числовые части URL, такие как `{x}`, нулями для придания им фиксированной ширины.
* Добавлена секунда координации непосредственно перед январём 2017 года. (#4092)
* Устранено исключение, которое могло возникнуть при переключении в 2D-вид при включённых тенях. (#4051)
* Устранена проблема, из-за которой объекты исчезали при одновременном обновлении нескольких объектов. (#4096)
* Нормализация вектора скорости, создаваемого `VelocityVectorProperty`, теперь является необязательной.
* Функции упаковки теперь возвращают результирующий массив (#4156).
* Добавлено необязательное `rangeMax` в параметры `Math.toSNorm` и `Math.fromSNorm`. (#4121).
* Удалено `MapQuest OpenStreetMap` из списка демонстрационных базовых слоёв, поскольку прямой доступ к тайлам был прекращён. См. раздел «Разработчик MapQuest». **1.23 — 2016-07-01**
*Изменения:*
— Исправлено PolylinePipeline.generateArc для принятия массива высот, когда есть только одна позиция (#4155).
**Изменения, нарушающие работу программы:**
— GroundPrimitive.initializeTerrainHeights() должен быть вызван, и его возвращённое обещание должно быть разрешено перед тем, как GroundPrimitive можно будет синхронно добавить.
**Добавлена привязка к местности для объектов, KML и GeoJSON:**
— Добавлено свойство heightReference для точечных, рекламных щитовых и модельных объектов.
— Изменены объекты коридора, эллипса, многоугольника и прямоугольника, чтобы они соответствовали рельефу, используя GroundPrimitive, если его материал является экземпляром ColorMaterialProperty и у него нет высоты или extrudedHeight. Объекты с любым другим типом материала не привязываются к рельефу.
***KMLDataSource:***
— Точечные и модельные функции всегда будут учитывать altitudeMode.
— Добавлена свойство clampToGround. Когда true, привязывает Polygon, LineString и LinearRing функции к земле, если их altitudeMode — clampToGround. В этом случае линии используют коридор вместо полилинии.
***GeoJsonDataSource:***
— Точки с высотой будут нарисованы на этой высоте, в противном случае они будут привязаны к земле.
— Добавлена свойство clampToGround. Когда true, привязывает функции Polygon и LineString к земле. Для этого случая линии используют коридор вместо полилинии.
Добавлен пример привязки к земле Sandcastle (https://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Ground Clamping.html&label=Showcases).
Улучшена производительность и точность триангуляции полигонов с использованием библиотеки earcut (https://github.com/mapbox/earcut). Загрузка GeoJSON с полигонами для каждой страны стала в 2 раза быстрее.
Исправлены некоторые большие триангуляции многоугольников (#2788).
Добавлена поддержка расширения glTF WEB3D_quantized_attributes (https://github.com/KhronosGroup/glTF/blob/master/extensions/Vendor/WEB3D_quantized_attributes/README.md) (#3241).
Добавлена поддержка CZML для Box, Corridor и Cylinder. Добавлены новые свойства CZML:
— Billboard: width, height, heightReference, scaleByDistance, translucencyByDistance, pixelOffsetScaleByDistance, imageSubRegion.
— Label: heightReference, translucencyByDistance, pixelOffsetScaleByDistance.
— Model: heightReference, maximumScale.
— Point: heightReference, scaleByDistance, translucencyByDistance.
— Ellipsoid: subdivisions, stackPartitions, slicePartitions.
Добавлено свойство rotatable2D для Scene, CesiumWidget и Viewer для включения поворота карты в 2D режиме (#3897).
Camera.setView и Camera.flyTo теперь используют параметр orientation.heading в 2D, если карта вращается.
Добавлено событие Camera.changed, которое будет срабатывать всякий раз, когда камера изменилась более чем на Camera.percentageChanged. percentageChanged находится в диапазоне [0, 1].
Приближение к целевой точке теперь сохраняет целевую точку в том же положении экрана (#4016).
Улучшено выполнение GroundPrimitive.
Некоторый некорректный KML (в частности, KML, который повторно использует идентификаторы) теперь анализируется правильно.
В KmlDataSource добавлено unsupportedNodeEvent, которое срабатывает всякий раз, когда встречается неподдерживаемый узел.
Clock теперь поддерживает свою конфигурацию. Ранее это делал AnimationViewModel, и в некоторых случаях она могла стать несогласованной (#4007).
Обновлён пример Google Cardboard Sandcastle (http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Cardboard.html&label=Showcase).
Добавлена модель воздушного шара (https://github.com/CesiumGS/cesium/tree/master/Apps/SampleData/models/CesiumBalloon).
Исправлена обработка координат Rectangle в CZML (#4033). «Cannot read property 'x' of undefined» error when calling SceneTransforms.wgs84ToWindowCoordinates в некоторых случаях.
* *#4022* *(https://github.com/CesiumGS/cesium/pull/4022):*
* Повторно включены вводы мыши после указанного количества миллисекунд, прошедших с момента последнего события касания.
* В API представлен параметрический тест пересечения луча и треугольника как IntersectionTests.rayTriangleParametric.
* Добавлены функции packArray и unpackArray в Cartesian2, Cartesian3 и Cartesian4.*
1.22.2 — 2016-06-14:
* Это выпуск только для npm для исправления неправильно опубликованного 1.22.1. Изменений в коде не было.
1.22.1 — 2016-06-13:
* Исправлен ключ Bing по умолчанию и добавлен водяной знак, чтобы уведомить пользователей о необходимости зарегистрироваться для получения собственного ключа.
1.22 — 2016-06-01:
* **Изменения:**
* KmlDataSource теперь требует options.camera и options.canvas.
* **Добавлены тени:**
* См. демонстрацию Sandcastle: Shadows (http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Shadows.html&label=Showcases).
* Добавлено Viewer.shadows и Viewer.terrainShadows, по умолчанию отключено.
* Добавлено Viewer.shadowMap и Scene.shadowMap для доступа к теневой карте сцены.
* Добавлено castShadows и receiveShadows в свойствах Model и Entity.model, а также опции в конструкторе Model и Model.fromGltf.
* Добавлено castShadows и receiveShadows в Primitive, а также опции в конструкторе Primitive.
* Добавлено castShadows и receiveShadows в Globe.
* **Добавлено heightReference** в модели, чтобы их можно было рисовать на местности.
* **Добавлена поддержка** рендеринга моделей в 2D и Columbus view.
* **Добавлен параметр**, позволяющий включить положение солнца на основе цвета атмосферы при включении Globe.enableLighting (true).
* **Улучшена совместимость** KML NetworkLink за счёт поддержки тега Url.
* **Добавлено VelocityVectorProperty**, чтобы ось выравнивания рекламного щита могла следовать вектору скорости.
* **Улучшено управление памятью** для визуализации рекламных щитов/меток/точек/путей сущностей.
* **Добавлено событие terrainProviderChanged** в Scene и Globe.
* **Добавлена поддержка** сдвигов оттенка, насыщенности и яркости цвета в атмосфере в SkyAtmosphere. См. новый пример Sandcastle: Atmosphere Color (http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Atmosphere%20Color.html&label=Showcases).
* **Исправлены исчезающие плитки преувеличенного рельефа.**
* **Исправлено возможное неправильное вычисление нормалей** для преувеличенного рельефа, особенно для низкодетализированных тайлов.
* **Устранена ошибка**, которая могла вызывать ошибки при выборе и включённом рельефе.
* **Устранена ошибка**, из-за которой атмосфера исчезала, когда была видна только атмосфера.
* **Исправлена бесконечная горизонтальная прокрутка** в 2D в IE/Edge.
* **Исправлена ошибка**, которая приводила к сбою, если камера находилась на IDL в 2D.
* **Исправлена проблема**, когда повторяющаяся анимация модели не воспроизводилась, когда часы были установлены на время до создания модели.
* **Исправлен Billboard.computeScreenSpacePosition**, возвращающий неправильную координату y.
* **Исправлена проблема**, при которой метки исчезали.
* **Исправлена проблема**, при которой рекламные щиты на рельефе не всегда обновлялись при изменении поставщика рельефа.
* **Исправлена проблема**, при которой Matrix4.fromCamera принимал глаз/цель вместо положения/направления.
* **Добавлено Scene.nearToFarDistance2D**, которое... Определяет размер каждого усечённого конуса многоусечённого конуса в 2D.
- Добавлен `Matrix4.computeView`.
- Добавлен `CullingVolume.fromBoundingSphere`.
- Добавлена возможность `debugShowShadowVolume` для `GroundPrimitive`.
- Исправлена проблема с исчезающими плитками в Linux. #3889
### 1.21 — 2016-05-02
- Критические изменения
- Удалена `ImageryMaterialProperty.alpha`. Вместо этого используйте `ImageryMaterialProperty.color.alpha`.
- Удалён `OpenStreetMapImageryProvider`. Вместо него используйте `createOpenStreetMapImageryProvider`.
- Добавлена возможность импорта и экспорта примера Sandcastle с использованием GitHub Gists. #3795
- Добавлены опции `PolygonGraphics.closeTop`, `PolygonGraphics.closeBottom` и `PolygonGeometry` для создания экструдированного многоугольника без верха или низа. #3879
- Добавлена поддержка материала полилинейной стрелки для `CzmlDataSource`. #3860
- Исправлена ошибка, из-за которой солнце не отображалось. #3801
- Исправлена ошибка, при которой `Camera.flyTo` не работал с прямоугольником в 2D. #3688
- Исправлена ошибка, вызывающая затемнение тумана и мерцание атмосферы при обрезке камеры глобуса. #3178
- Исправлено исключение и останов рендеринга при использовании `ArcGisMapServerImageryProvider` для подключения к MapServer с указанием проекции Web Mercator и fullExtent больше допустимого экстента проекции. #3854
- Исправлена ошибка, приводящая к исключению при переключении режимов сцены с активной KML-ссылкой на сеть. #3865
### 1.20 — 2016-04-01
- Критические изменения
- Удалён `TileMapServiceImageryProvider`. Используйте `createTileMapServiceImageryProvider` вместо него.
- Удалён `GroundPrimitive.geometryInstance`. Используйте `GroundPrimitive.geometryInstances` вместо него.
- Убрано `definedNotNull`. Используйте `defined` вместо него.
- Из-за новой функции бесконечной прокрутки в 2D удалена возможность поворота карты в 2D.
- Устаревшее
- Устарел `ImageryMaterialProperty.alpha`. Он будет удалён в версии 1.21. Вместо него используйте `ImageryMaterialProperty.color.alpha`.
- Добавлена бесконечная горизонтальная прокрутка в 2D.
- Приведён пример кода в Sandcastle для [нового 1-метрового сервиса рельефа Пенсильвании](http://cesiumjs.org/2016/03/15/New-Cesium-Terrain-Service-Covering-Pennsylvania/).
- Исправлен процесс загрузки для KML `NetworkLink`, чтобы не добавлять `?`, если нет строки запроса.
- Исправлено обращение с нестандартными ссылками `styleUrl` в `StyleMap` в KML.
- Исправлена ошибка в KML, когда StyleMaps из внешних документов не загружаются.
- Добавлена полупрозрачная и цветная поддержка изображений для наземных наложений KML.
- Исправлена ошибка при апсемплинге преувеличенного рельефа, где высоты рельефа были преувеличены вдвое. #3607
- Все внешние URL теперь по умолчанию используют https, чтобы Cesium лучше работал с приложениями, не основанными на сервере. #3650
- `GeoJsonDataSource` теперь обрабатывает CRS `urn:ogc:def:crs:EPSG::4326`.
- Исправлена ошибка `TimeIntervalCollection.removeInterval`, которая приводила к удалению слишком большого количества интервалов.
- `GroundPrimitive` выдаёт `DeveloperError`, когда ему передаётся неподдерживаемый тип геометрии, вместо сбоя.
- Исправлена ошибка с коллекциями рекламных щитов, которые имеют хотя бы один рекламный щит с выровненной осью и хотя бы один рекламный щит без выровненной оси. #3318
- Исправлено состояние гонки, которое приводило к продолжению загрузки и выгрузки рельефа или к сбою при смене поставщика рельефа. #3690
- Исправлена ошибка, когда объём `GroundPrimitive` обрезался дальней плоскостью. #3706
- Исправлена ошибка, при которой `Camera.computeViewRectangle` была неверной при пересечении международной границы. **Дата выпуска: 1.19 — 2016-03-01**
* Изменения, нарушающие работу:
* PolygonGeometry теперь изменяет входные значения Cartesian3 параметров options.positions таким образом, чтобы они находились на поверхности эллипсоида. Это касается только полигонов, созданных синхронно с options.perPositionHeight = false, когда позиции имеют ненулевую высоту и одни и те же позиции используются для нескольких объектов. В этом случае следует сделать копию значений Cartesian3, используемых для позиций полигона.
* Устарело:
* KmlDataSource с прокси-объектом. Вызовет исключение в версии 1.21. Теперь должен принимать объект options с обязательными параметрами camera и canvas.
* definedNotNull. Будет удалён в версии 1.20. Вместо него следует использовать defined, который теперь проверяет наличие null и undefined.
* Улучшена поддержка KML:
* Добавлена поддержка режимов обновления NetworkLink onInterval, onExpire и onStop. Включает поддержку viewboundScale, viewFormat, httpQuery.
* Частично добавлена поддержка NetworkLinkControl, включая minRefreshPeriod, cookie и expires.
* Добавлена поддержка локального StyleMap. Стиль highlight по-прежнему игнорируется.
* Поддерживаются URL-адреса вида root://.
* Добавлено больше предупреждений о неподдерживаемых функциях.
* Улучшен процесс обработки стилей в IE.
* Viewer.zoomTo и Viewer.flyTo теперь принимают экземпляр ImageryLayer в качестве допустимого параметра и масштабируют изображение до его границ.
* Добавлена функция Camera.flyHome для возврата камеры к исходному виду.
* Camera.flyTo теперь учитывает максимальные и минимальные настройки масштабирования в ScreenSpaceCameraController.
* Добавлено свойство show в CzmlDataSource, GeoJsonDataSource, KmlDataSource, CustomDataSource и EntityCollection для простого переключения отображения всех источников данных.
* Добавлено свойство owner в CompositeEntityCollection.
* Добавлено DataSouceDisplay.ready для определения, был ли отрисован статический контент, связанный с Entity API.
* Исправлена проблема при изменении свойства position рекламного щита несколько раз за кадр.
* Исправлено положение текстур для полигона с высотами позиций.
* Исправлен сбой, из-за которого GroundPrimitive с EllipseGeometry не имел свойства rotation.
* Исправлен сбой при отрисовке CorridorGeometry и CorridorOutlineGeometry синхронно.
* Созданы пустые геометрии. Вместо DeveloperError возвращается undefined.
* Исправлено перемещение к широте, долготе и высоте в Геокодере.
* Исправлена ошибка в IntersectionTests.lineSegmentSphere, где не был установлен источник луча.
* Добавлены length в Matrix2, Matrix3 и Matrix4, чтобы их можно было использовать как массивоподобные объекты.
* Добавлены функции Color.add, Color.subtract, Color.multiply, Color.divide, Color.mod, Color.multiplyByScalar и Color.divideByScalar для выполнения арифметических операций над цветами.
* Добавлен необязательный параметр result в Color.fromRgba, Color.fromHsl и Color.fromCssColorString.
* Исправлена ошибка, вызывающая ошибку ссылки navigator is not defined при использовании Cesium с Node.js.
* Обновлён Knockout с версии 3.2.0 до 3.4.0.
* Заделана дыра, появившаяся в верхней части динамических эллипсоидов.
**Дата выпуска: 1.18 — 2016-02-01**
Изменения, нарушающие работу: удалена поддержка CESIUM_binary_glTF. Используйте KHR_binary_glTF вместо этого, что является значением по умолчанию для онлайн COLLADA-to-glTF. - Устарело:
- `GroundPrimitive.geometryInstance`. Будет удалено в версии 1.20. Вместо этого используйте `GroundPrimitive.geometryInstances`.
- `TileMapServiceImageryProvider`. Будет удалено в версии 1.20. Используйте `createTileMapServiceImageryProvider` вместо этого.
- Уменьшено использование памяти процессора для ландшафта примерно на 25% в Chrome.
- Добавлен пример Sandcastle для перекрывающихся рекламных щитов и меток «взрыва звезды».
- Добавлена `VRButton`, которая представляет собой простой виджет с одной кнопкой, который переключает режим VR. По умолчанию он выключен. Чтобы включить кнопку, установите для параметра `vrButton` значение `Viewer` равным `true`. Поддерживается только Cardboard для мобильных устройств. Поддержка других VR-устройств появится, когда WebVR API станет более стабильным.
- Добавлена функция `Scene.useWebVR` для переключения сцены на стереоскопический рендеринг.
- Cesium теперь учитывает `window.devicePixelRatio` в браузерах, поддерживающих атрибут CSS `imageRendering`. Это значительно повышает производительность на мобильных устройствах и дисплеях с высоким разрешением DPI за счёт рендеринга с рекомендованным браузером разрешением. В этих случаях также снижается использование полосы пропускания и увеличивается срок службы батареи. Чтобы включить предыдущее поведение, используйте следующий код:
```javascript
if (Cesium.FeatureDetection.supportsImageRenderingPixelated()) {
viewer.resolutionScale = window.devicePixelRatio;
}
GroundPrimitive
теперь поддерживает пакетную обработку геометрии для повышения производительности.ImageryLayer.getViewableRectangle
, чтобы было легко получить эффективные границы слоя изображений.GroundPrimitives
, содержащих прямоугольники с шириной больше пи.UrlTemplateImageryProvider.reinitialize
для изменения параметров поставщика изображений без создания нового экземпляра.UrlTemplateImageryProvider
принимает обещание объекту options
в дополнение к непосредственному получению объекта.Scene.useDepthPicking
для включения или отключения выбора с использованием буфера глубины. #3390.BoundingSphere.fromEncodedCartesianVertices
для создания ограничивающих объёмов из параллельных массивов верхних и нижних битов EncodedCartesian3
.getExtensionFromUri
, getAbsoluteUri
и Math.logBase
.Rectangle.union
и Rectangle.expand
.createTileMapServiceImageryProvider
. Для правильной загрузки слоёв, сгенерированных более старыми версиями gdal2tiles.py, может потребоваться установить параметр flipXY : true
.Критические изменения:
— Удалены Camera.viewRectangle
. Вместо этого используйте Camera.setView({destination: rectangle})
.
— Удалён RectanglePrimitive
. Вместо него используйте RectangleGeometry
или Entity.rectangle
.
— Удалён Polygon
. Вместо него используйте PolygonGeometry
или Entity.polygon
.
— Удалена OrthographicFrustum.getPixelSize
. Вместо неё используйте OrthographicFrustum.getPixelDimensions
.
— Удалена PerspectiveFrustum.getPixelSize
. Вместо неё используйте PerspectiveFrustum.getPixelDimensions
.
— Удалена PerspectiveOffCenterFrustum.getPixelSize
. Вместо неё используйте PerspectiveOffCenterFrustum.getPixelDimensions
.
— Удалено Scene\HeadingPitchRange
. Вместо него используйте Core\HeadingPitchRange
.
— Удален jsonp
. Вместо него используйте loadJsonp
.
— Удалён HeightmapTessellator
из общедоступного API. Это детали реализации.
— Удалён TerrainMesh
из общедоступного API. Он является деталью реализации. Детали реализации.
Уменьшено использование GPU и CPU памяти для ландшафта с помощью сжатия. Использование CPU-памяти сократилось до 40%.
Добавлена возможность манипулировать преобразованиями узла Model
через CZML и Entity API. См. новый пример Sandcastle: CZML Model — Node Transformations. #3316
Добавлено Globe.tileLoadProgressEvent
, которое возникает при изменении длины очереди загрузки тайлов, позволяя использовать индикаторы инкрементальной загрузки.
Поддержка форматов информации о функциях msGMLOutput и Thredds сервера добавлена в GetFeatureInfoFormat
и WebMapServiceImageryProvider
.
Динамический переключатель enableFeaturePicking
добавлен во все ImageryProviders, поддерживающие выбор функций.
Исправлено исчезновение ландшафта при активном тумане. #3335
Устранены короткие сегменты в CorridorGeometry
и PolylineVolumeGeometry
. #3293
Исправлено CorridorGeometry
с почти коллинеарными точками. #3320
Добавлены недостающие точки в EllipseGeometry
и EllipseOutlineGeometry
. #3078
Rectangle.fromCartographicArray
теперь использует наименьший прямоугольник независимо от того, пересекает ли он международную линию перемены дат. #3227
Добавлено свойство TranslationRotationScale
, представляющее аффинное преобразование, определяемое переводом, вращением и масштабом.
Добавлен метод Matrix4.fromTranslationRotationScale
.
Добавлен NodeTransformationProperty
, который является значением Property
, определённым независимыми экземплярами translation
, rotation
и scale
Property
.
Добавлен PropertyBag
, который представляет собой Property
, значение которого является сопоставлением имён свойств с вычисленными значениями других свойств.
Добавлен ModelGraphics.runAnimations
, который является логическим свойством, указывающим, следует ли запускать все анимации модели после загрузки модели.
Добавлен ModelGraphics.nodeTransformations
, который является PropertyBag
свойств TranslationRotationScale
, применяемых к загруженной модели.
Добавлена поддержка CZML для новых свойств runAnimations
и nodeTransformations
в пакете model
.
Устаревшие функции:
HeightmapTessellator
. Будет удалён в версии 1.17.TerrainMesh
. Будет удалён в версии 1.17.OpenStreetMapImageryProvider
. Будет удалён в версии 1.18. Используйте createOpenStreetMapImageryProvider
вместо этого.Улучшена производительность ландшафта до 35%. Добавлена поддержка тумана вблизи горизонта, что повышает производительность за счёт рендеринга меньшего количества тайлов ландшафта и уменьшения запросов на тайлы ландшафта. Это включено по умолчанию. Смотрите Scene.fog
для параметров. #3154
Добавлено преувеличение ландшафта. Включается при создании средства просмотра с коэффициентом преувеличения в качестве параметра terrainExaggeration
.
Поддерживается инкрементальная загрузка текстур после готовности модели. Это позволяет сделать модель видимой как можно скорее, пока её текстуры загружаются в фоновом режиме.
Теперь ImageMaterialProperty.image
принимает HTMLVideoElement
. Вы также можете назначить элемент видео непосредственно свойству material
объекта Entity.
Униформы материала изображения теперь принимают HTMLVideoElement
везде, где ранее можно было использовать элемент Canvas
.
Добавлен вспомогательный объект VideoSynchronizer
для синхронизации HTMLVideoElement
с часами сцены.
Решена проблема с загрузкой скелетов для моделей с кожей glTF. #3224
Решена проблема выбора тайла при нахождении ниже поверхности эллипсоида. #3170
Добавлена функция Cartographic.fromCartesian
.
Добавлена функция createOpenStreetMapImageryProvider
, которая заменяет... Класс OpenStreetMapImageryProvider. Эта функция возвращает сконструированный объект UrlTemplateImageryProvider.
GeoJsonDataSource.load теперь принимает необязательную функцию describeProperty для генерации свойств описания объектов. #3140
Добавлены ImageryProvider.readyPromise и TerrainProvider.readyPromise, которые реализованы во всех провайдерах местности и изображений. Это обещание, которое разрешается, когда ready становится истинным, и отклоняется при возникновении ошибки во время инициализации. #3175
Исправлена проблема, из-за которой текстура солнца неправильно генерировалась на некоторых мобильных устройствах. #3141
Исправлен баг, вызывавший выброс исключения при установке Entity.parent в undefined. #3169
Исправлен баг, приводивший к некорректному отображению графики полилинии объекта Entity, если эллипсоид сцены не был WGS84. #3174
Объекты имеют ссылку на свою коллекцию объектов и на своего владельца (обычно это источник данных, но может быть и CompositeEntityCollection).
Добавлен ImageMaterialProperty.alpha и альфа-униформа для типов Image и Material для управления общей прозрачностью изображения. По умолчанию значение равно 1.0, что означает полную непрозрачность.
Добавлена функция Camera.getPixelSize для получения размера пикселя в метрах на основе текущего вида.
Добавлена функция Camera.distanceToBoundingSphere.
Добавлена функция BoundingSphere.fromOrientedBoundingBox.
Добавлена служебная функция getBaseUri, которая по заданному URI с параметрами запроса или без них возвращает базовый путь URI.
В очередь добавлена функция Queue.peek для возврата элемента в начале очереди.
Исправлено JulianDate.fromIso8601 так, чтобы он правильно анализировал формат YYYY-MM-DDThh:mmTZD.
Добавлены свойства Model.maximumScale и ModelGraphics.maximumScale, задающие верхний предел для minimumPixelSize.
Реализация glTF исправлена для чтения версии в виде строки согласно спецификации и правильной обработки обратной совместимости для вращений по углу-оси в моделях glTF 0.8.
Исправлен баг в устаревшем jsonp, который мешал ему возвращать обещание. Его замена, loadJsonp, осталась незатронутой.
Исправлен баг, из-за которого loadWithXhr отклонял возвращённое обещание с успешными HTTP-ответами (2xx), которые не были 200.
Изменения:
Устаревшее:
Устарел Camera.viewRectangle. Он будет удалён в версии 1.17. Вместо этого используйте Camera.setView({destination: rectangle}).
Следующие параметры Camera.setView устарели и будут удалены в версии 1.17:
Устарела поддержка расширения CESIUM_binary_glTF для моделей glTF. Следует использовать KHR_binary_glTF вместо. CESIUM_binary_glTF будет удалён в версии 1.18. Переконвертируйте модели с помощью онлайн-конвертера моделей.
Устарело RectanglePrimitive. Будет удалено в версии 1.17. Используйте RectangleGeometry или Entity.rectangle вместо.
Устарело EllipsoidPrimitive. Будет удалено в версии 1.17. Используйте EllipsoidGeometry или Entity.ellipsoid вместо.
Сделан EllipsoidPrimitive приватным, используйте EllipsoidGeometry или Entity.ellipsoid вместо.
Устарело BoxGeometry.minimumCorner и BoxGeometry.maximumCorner. Они будут удалены в версии 1.17. Используйте BoxGeometry.minimum и BoxGeometry.maximum вместо.
Устарело BoxOutlineGeometry.minimumCorner и BoxOutlineGeometry.maximumCorner. Они будут удалены в версии 1.17. Используйте BoxOutlineGeometry.minimum и BoxOutlineGeometry.maximum вместо. BoxOutlineGeometry.maximum вместо.
Deprecated OrthographicFrustum.getPixelSize. Будет удалено в версии 1.17. Вместо этого используйте OrthographicFrustum.getPixelDimensions.
Deprecated PerspectiveFrustum.getPixelSize. Будет удалено в версии 1.17. Вместо этого используйте PerspectiveFrustum.getPixelDimensions.
Deprecated PerspectiveOffCenterFrustum.getPixelSize. Будет удалено в версии 1.17. Вместо этого используйте PerspectiveOffCenterFrustum.getPixelDimensions.
Deprecated Scene\HeadingPitchRange. Будет удалено в версии 1.17. Вместо этого используйте Core\HeadingPitchRange.
Deprecated jsonp. Будет удалено в версии 1.17. Вместо этого используйте loadJsonp.
1.13 — 2015-09-01
Критические изменения:
Добавлена поддержка GroundPrimitive, который работает аналогично Primitive, но накладывает геометрию на рельеф. Допустимые геометрии, которые можно наложить на рельеф: CircleGeometry, CorridorGeometry, EllipseGeometry, PolygonGeometry и RectangleGeometry. Из-за передовой природы этой функции в WebGL для неё требуется расширение EXT_frag_depth, которое в настоящее время поддерживается только в Chrome, Firefox и Edge. Ожидается поддержка Apple в iOS 9 и MacOS Safari 9. Поддержка Android зависит от оборудования, а IE11, скорее всего, никогда её не получит. Вы можете использовать webglreport.com, чтобы проверить поддержку вашего оборудования. Наконец, эта функция в настоящее время доступна только в Primitives и ещё не доступна через Entity API. #2865.
Добавлен Scene.groundPrimitives, представляющий собой коллекцию примитивов, аналогичную Scene.primitives, но для экземпляров GroundPrimitive. Позволяет настраивать порядок по оси Z. #2960. Например:
// рисует эллипс поверх прямоугольника
var ellipse = scene.groundPrimitives.add(new Cesium.GroundPrimitive({...}));
var rectangle = scene.groundPrimitives.add(new Cesium.GroundPrimitive({...}));
// перемещает прямоугольник, чтобы он был поверх эллипса
scene.groundPrimitives.raise(rectangle);
В UrlTemplateImageryProvider добавлен тег reverseZ. #2961.
В BoundingSphere и OrientedBoundingBox добавлены методы isOccluded для определения, закрыты ли объёмы Occluder.
В OrientedBoundingBox добавлены функции distanceSquaredTo и computePlaneDistances.
Исправлена проблема с точностью GLSL, позволяющая Cesium поддерживать графические процессоры Mali-400MP и другие мобильные графические процессоры, где ранее не компилировались шейдеры GLSL. #2984.
Исправлена проблема, когда экструдированный PolygonGeometry всегда выдавливался на поверхность эллипсоида вместо указанной высоты. #2923.
Исправлена проблема, при которой узлы без функций препятствовали загрузке документов KML. #2945.
Исправлена проблема, при которой JulianDate неправильно анализировал некоторые даты. #405.
Удалён es5-shim, который больше не используется. #2933.
1.12 — 2015-08-03
Поведение мыши по умолчанию CTRL + Left Click Drag теперь дублируется для CTRL + Right Click Drag для лучшей совместимости с Firefox на Mac OS #2872.
Исправлены некорректные координаты текстуры для WallGeometry #2872.
Исправлена ошибка WallGeometry, из-за которой стены, покрывающие небольшое расстояние, не отображались. #2897.
Исправлен порядок обхода по часовой стрелке PolygonGeometry.
Исправлена экструдированная ошибка RectangleGeometry для малых высот. #2823.
Исправлена ограничивающая сфера BillboardCollection для рекламных щитов с вертикальным началом, отличным от центра. #2894.
Исправлена ошибка, приводившая к неправильному Camera.positionCartographic. #2838.
Исправлено вызов Scene.pickPosition после вызова Scene.drillPick. #2813.
Глубина глобуса теперь отображается во время выбора, когда Scene.depthTestAgainstTerrain имеет значение true, поэтому объекты за ландшафтом не выбираются.
Исправлено, что Cesium.js не может быть проанализирован в IE 8 и 9. Хотя Cesium не работает в версиях IE меньше 11, это позволяет более корректно обрабатывать ошибки.
1.11 — 2015-07-01
Изменения:
Удалено Scene.fxaaOrderIndependentTranslucency, которое было объявлено устаревшим в 1.10. Используйте Scene.fxaa, который теперь по умолчанию имеет значение true.
Удалено Camera.clone, которое было объявлено устаревшим в версии 1.10.
Устаревшее:
URL-адрес STK World Terrain cesiumjs.org/stk-terrain/world устарел, используйте assets.agi.com/stk-terrain/world вместо этого. Перенаправление будет действовать до версии 1.14.
Устарели AxisAlignedBoundingBox.intersect и BoundingSphere.intersect. Они будут удалены в версии 1.13. Вместо этого используйте AxisAlignedBoundingBox.intersectPlane и BoundingSphere.intersectPlane.
Объект OrientedBoundingBox объявлен устаревшим. Он будет удалён в версии 1.12. Вместо него используйте OrientedBoundingBox.
Улучшения камеры:
Улучшены полёты камеры. #2825.
Камера теперь масштабируется до точки под курсором мыши.
Добавлен новый режим камеры для видов горизонта. Когда камера смотрит на горизонт и выбирается точка на ландшафте над камерой, камера перемещается в плоскости, содержащей положение камеры, вверх и вправо.
Повышена производительность ландшафта и изображений и снижена загрузка тайлов до 50% в зависимости от вида камеры за счёт использования нового OrientedBoundingBox для усечения объёма просмотра. См. Terrain Culling with Oriented Bounding Boxes.
Добавлен UrlTemplateImageryProvider. Этот новый поставщик изображений позволяет получить доступ к широкому спектру источников изображений, включая OpenStreetMap, TMS, WMTS, WMS, WMS-C и различные пользовательские схемы, указав URL-шаблон, используемый для запроса тайлов изображений.
Исправлены артефакты рендеринга вспышки/полосы при выборе. #2790, #2811.
Исправлена проблема освещения в 2D и Columbus View. #2635.
Исправлены проблемы с кэшированием материалов, которые приводили к невозможности многократного использования материала на основе изображения. #2821.
Улучшено Camera.viewRectangle, так что указанный прямоугольник теперь лучше центрирован на экране. #2764.
Исправлен сбой при вызове viewer.zoomTo или viewer.flyTo непосредственно перед или во время морфинга сцены. #2775.
Исправлена проблема, из-за которой функции Camera вызывали исключение, если они использовались из обратного вызова Scene.morphComplete. #2776.
Исправлены полёты камеры, которые заканчивались в неправильном положении в Columbus View. #802.
Исправлены полёты камеры через... 1.10 — 2015-06-01
Изменения:
Устаревшее:
Устаревающее:
Добавлен параметр view в приложение CesiumViewer, который устанавливает... В запросе представлен текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — английский.
Вот перевод текста на русский язык:
http://cesiumjs.org/Cesium/Build/Apps/CesiumViewer/index.html/index.html?view=-75.0,40.0,300.0,9.0,-13.0,3.0
.Billboard.heightReference
и Label.heightReference
, чтобы закрепить рекламные щиты и метки на местности.Model
. См. Faster 3D Models with Binary glTF.Model
.PointPrimitive
и PointPrimitiveCollection
, которые работают быстрее и используют меньше памяти, чем рекламные щиты с кругами.Entity.point
для использования нового PointPrimitive
вместо рекламных щитов. Это не меняет API Entity.point
.Scene.pickPosition
для восстановления положения WGS84 по координатам окна.Camera.moveStart
и Camera.moveEnd
.GeocoderViewModel.complete
, которое срабатывает после завершения полёта камеры.KmlDataSource
теперь может загружать файл KML, который использует явное пространство имён XML, например kml:Document
.Entity.show
теперь правильно переключает отображение всех дочерних сущностей, ранее она влияла только на его прямых потомков.Entity
с установленным значением show
, равным false, появлялись снова при добавлении новой геометрии Entity
. #2686.Rotation
, который при передаче в SampledProperty
всегда интерполирует значения в сторону кратчайшего угла. Также подключён CZML для использования Rotation
для всех динамических вращений во времени.TileProviderError
теперь дополнительно принимает параметр error
с более подробной информацией об ошибке или исключении, которое произошло. ImageryLayer
передаёт эту информацию, когда плитки не загружаются. Это позволяет обработчику ошибок поставщика тайлов выполнять разные действия, когда тайл возвращает 404 или 500, например.ArcGisMapServerImageryProvider
теперь есть параметр конструктора maximumLevel
.ArcGisMapServerImageryProvider
теперь работает правильно, когда указан параметр layers
. Ранее он выбирал из всех слоёв, даже если отображался только поднабор.WebMapServiceImageryProvider.pickFeatures
теперь работает с серверами WMS, такими как Google Maps Engine, которые могут возвращать информацию о функциях только в формате HTML.WebMapServiceImageryProvider
теперь принимает массив экземпляров GetFeatureInfoFormat
, которые он будет использовать для получения информации о функциях в данной позиции на земном шаре. Это позволяет передавать произвольный info_format
на сервер WMS и использовать произвольную функцию JavaScript для интерпретации ответа.ImageryLayer
создать MIP-карты для текстур, размер которых не является степенью двойки.ImageryLayerCollection.pickImageryLayerFeatures
возвращала неверные результаты при выборе из тайла рельефа, частично покрытого корректным уровнем изображения и частично покрытого изображением предка.debug.tilesWaitingForChildren
в QuadtreePrimitive
исправлено.throttleRequestsByServer.maximumRequestsPerServer
.createGeometry
изменён для загрузки отдельных геометрических рабочих процессов с использованием CommonJS-стиля require
при запуске в среде, подобной CommonJS.buildModuleUrl.setBaseUrl
, позволяющая установить базовый URL Cesium без использования глобального CESIUM_BASE_URL. 1.9 — 2015-05-01
ThirdParty/zip
для переноса вызова на buildModuleUrl
, пока это необходимо, вместо выполнения во время загрузки модуля.
— Добавлен необязательный предел бурения в Scene.drillPick
.
— В параметры конструкции провайдеров изображений и местности добавлен необязательный параметр ellipsoid
, который отсутствовал. Обратите внимание, что ограничивающие сферы местности вычисляются на сервере заранее, поэтому любой предоставленный эллипсоид местности должен соответствовать тому, который используется сервером.
— Добавлена опция отладки в Scene
для отображения информации о буфере глубины для указанного среза усечённой пирамиды обзора и раскрыта возможность в виджете CesiumInspector
.
— Добавлена новая секунда координации для 30 июня 2015 года в UTC 23:59:60.
— Обновлён Autolinker с версии 0.15.2 до 0.17.1.1.8 — 2015-04-01
Изменения:
— Убраны параметры eye
, target
и up
из Camera.lookAt
, которые были объявлены устаревшими в Cesium 1.6. Используйте target
и offset
.
— Убрана функция Camera.setTransform
, которая была объявлена устаревшей в Cesium 1.6. Вместо неё используйте Camera.lookAtTransform
.
— Убрана функция Camera.transform
, которая была объявлена устаревшей в Cesium 1.6. Вместо неё используйте Camera.lookAtTransform
.
— Убраны опции direction
и up
функции Camera.flyTo
, которые были объявлены устаревшими в Cesium 1.6. Используйте опцию orientation
.
— Убрана функция Camera.flyToRectangle
, которая была объявлена устаревшей в Cesium 1.6. Вместо неё используйте Camera.flyTo
.
Устарело:
— Объявлен устаревшим набор тайлов smallterrain
. Он будет удалён в версии 1.11. Используйте набор тайлов STK World Terrain.
Добавлено:
— Функции Entity.show
(логическое значение для скрытия или отображения сущности и её дочерних элементов) и Entity.isShowing
(доступное только для чтения свойство, указывающее, отображается ли сущность в данный момент).
— Поддержка элемента KML visibility
. Функции. Поддержка будет удалена в версии 1.10. Вместо этого передайте объект options
с свойством sourceUri
.
Добавлена начальная поддержка KML 2.2 через KmlDataSource
. Ознакомьтесь с новой демонстрацией Sandcastle и справочной документацией для получения более подробной информации.
Санкционирования InfoBox
теперь опирается на изолирование iframe. Это позволяет отображать гораздо больше контента в InfoBox
, сохраняя при этом безопасность.
Добавлен InfoBox.frame
, который является экземпляром iframe, используемого для размещения содержимого описания. Санкционирование можно контролировать с помощью атрибута sandbox
фрейма. Дополнительную информацию см. по ссылке выше.
Устранена ошибка в Safari, которая вызывала большинство проблем в Cesium. Теперь Cesium должен работать намного лучше в Safari как для настольных компьютеров, так и для мобильных устройств.
Исправлены неправильные координаты текстуры эллипса. #2363 и #2465.
Исправлена ошибка, которая могла привести к неправильной геометрии для длинных коридоров и объёмов полилиний. #2513.
Исправлена ошибка в загрузке изображений, которая могла вызвать исчезновение части или всего земного шара при использовании слоя изображений, не покрывающего весь земной шар.
Исправлена ошибка, из-за которой ElipseOutlineGeometry
и CircleOutlineGeometry
выдавливались на землю, когда они должны были быть нарисованы на высоте. #2499.
Исправлена ошибка, препятствовавшая работе цветов вершин с PolylineGeometry
и SimplePolylineGeometry
, когда они использовались асинхронно. #2516.
Исправлена ошибка, приводившая к дублированию графики, если объекты Entity
, не являющиеся динамическими во времени, изменялись в быстрой последовательности. #2514.
Исправлена ошибка, при которой camera.flyToBoundingSphere
игнорировала диапазон, если радиус ограничивающей сферы был равен 0. #2519.
Исправлено несколько проблем со стилем в InfoBox
и BaseLayerPicker
, вызванных использованием Bootstrap с Cesium. #2487.
Добавлена поддержка рендеринга эффекта воды на плитках местности с квантованной сеткой.
В Matrix2
и Matrix3
добавлены функции pack
и unpack
.
Добавлено обнаружение/реакция столкновения камеры с местностью, когда установлен опорный кадр камеры.
ScreenSpaceCameraController.enableCollisionDetection
добавлен для включения/отключения обнаружения столкновений камеры с местностью.
Для упрощения создания и загрузки данных в одной строке добавлены CzmlDataSource.load
и GeoJsonDataSource.load
.
Возможность передавать Promise
в DataSource
для DataSourceCollection.add
добавлена. DataSource
фактически не будет добавлен до тех пор, пока обещание не разрешится.
Возможность передачи Promise
цели для viewer.zoomTo
и viewer.flyTo
добавлена.
Все функции загрузки CzmlDataSource
и GeoJsonDataSource
теперь возвращают экземпляры Promise
, которые разрешаются после загрузки данных.
Обработка ошибок во всех функциях загрузки CzmlDataSource
и GeoJsonDataSource
стала более согласованной. Вместо смеси исключений и отклонений Promise
все ошибки возникают через отклонения Promise
.
Помимо адресов, виджет Geocoder
теперь позволяет вводить долготу, широту и необязательную высоту в градусах и метрах. Пример: -75.596, 40.038, 1000
или -75.596 40.038
.
Критические изменения
Rectangle.intersectWith
устарел в Cesium 1.5. Используйте Rectangle.intersection
, которое аналогично, но возвращает undefined
, когда два прямоугольника не пересекаются.Rectangle.isEmpty
устарел в Cesium 1.5.sourceUri
для GeoJsonDatasource.load
устарел в Cesium 1.4 и был удалён. Вместо него используйте options.sourceUri.PolygonGraphics.positions
. Созданные с помощью GeoJSONDataSource теперь оцениваются как объекты PolygonHierarchy, а не как массив позиций.Устарело:
Исправлено:
— Исправлена проблема, из-за которой порядок независимой прозрачности нарушался на многих видеокартах. Отключение порядка независимой прозрачности больше не требуется. — GeoJsonDataSource теперь поддерживает полигоны с отверстиями. — Многие примеры Sandcastle были переписаны для использования улучшенного API Entity. — Вместо того чтобы генерировать исключение, когда недостаточно уникальных позиций для определения геометрии, создание примитива будет успешным, но не будет отображаться. #2375. — Улучшена производительность асинхронного создания геометрии (до 20% быстрее в некоторых случаях использования). #2342. — Исправлен выбор в 2D. #2447.
Добавлено:
— viewer.entities, что позволяет легко создавать и управлять экземплярами Entity без соответствующего DataSource. Это просто ярлык для viewer.dataSourceDisplay.defaultDataSource.entities. — viewer.zoomTo и viewer.flyTo, которые принимают в качестве параметра сущность, массив сущностей, EntityCollection или DataSource и масштабируют или перемещаются к соответствующей визуализации. — Установка viewer.trackedEntity в undefined теперь восстановит управление камерой до их состояний по умолчанию. — Когда вы отслеживаете объект, нажимая кнопку отслеживания в InfoBox, теперь вы можете остановить отслеживание, нажав кнопку второй раз. — Добавлен Quaternion.fromHeadingPitchRoll для создания вращения из углов курса, тангажа и крена. — Добавлено Transforms.headingPitchRollToFixedFrame для создания локальной рамки из позиции и углов курса, тангажа и крена. — Добавлено Transforms.headingPitchRollQuaternion, которое является вращением кватерниона от... - Добавлены методы Color.fromAlpha и Color.withAlpha, чтобы было проще создавать полупрозрачные цвета из констант, например: var translucentRed = Color.RED.withAlpha(0.95).
Добавлены PolylineVolumeGraphics и Entity.polylineVolume.
Добавлен метод Camera.lookAtTransform, который устанавливает положение и ориентацию камеры с учётом матрицы преобразования, определяющей систему отсчёта, и либо декартова смещения, либо направления/угла наклона/дальности от центра этой системы.
Добавлены Camera.setView (использует направление, угол наклона и угол поворота) и Camera.roll.
В Camera.flyTo добавлена опция ориентации, которая может быть представлена в виде векторов направления и вверх или углов направления, угла наклона и угла поворота.
Добавлен метод BillboardGraphics.imageSubRegion, позволяющий использовать пользовательские текстуры атласа для экземпляров Entity.
Добавлена возможность использования материала «шахматная доска» с помощью класса CheckerboardMaterialProperty.
Добавлен класс PolygonHierarchy, упрощающий определение полигонов с отверстиями.
Для поддержки полигонов с отверстиями через источники данных добавлен метод PolygonGraphics.hierarchy.
Добавлен метод BoundingSphere.fromBoundingSpheres, создающий BoundingSphere, охватывающий указанный массив BoundingSpheres.
Добавлены Model.readyPromise и Primitive.readyPromise, которые являются обещаниями, разрешающимися при готовности примитивов.
ConstantProperty теперь может содержать любое значение; ранее он был ограничен значениями, реализующими функции equals и clones, а также несколькими специальными случаями.
Исправлена ошибка в EllipsoidGeodesic, из-за которой он изменял высоту позиций, передаваемых конструктору или setEndPoints.
WebMapTileServiceImageryProvider теперь поддерживает RESTful запросы (принимая шаблон URL-адреса плитки).
Исправлена ошибка, из-за которой Camera.roll был около 180 градусов, указывая на то, что камера была перевёрнута, когда она находилась в Южном полушарии.
Объект, возвращаемый Primitive.getGeometryInstanceAttributes, теперь содержит ограничивающую сферу экземпляра, и повторные вызовы всегда будут возвращать один и тот же экземпляр объекта.
Исправлена ошибка, приводившая к тому, что динамические ширины контуров геометрии не работали в реализациях, поддерживающих их.
Виджет SelectionIndicator теперь работает для всех визуализаций сущностей и использует центр визуализации вместо entity.position. Это даёт более точные результаты, особенно для форм, объёмов и моделей.
Добавлен CustomDataSource, облегчающий создание и управление группой сущностей без необходимости вручную реализовывать интерфейс DataSource в новом классе.
Добавлен DataSourceDisplay.defaultDataSource, представляющий собой экземпляр CustomDataSource и позволяющий легко добавлять пользовательские сущности на экран.
Добавлены Camera.viewBoundingSphere и Camera.flyToBoundingSphere, которые, как следует из названий, устанавливают или перемещаются к виду, охватывающему предоставленную BoundingSphere.
Для постоянных значений Property больше нет необходимости создавать экземпляр ConstantProperty или ConstantPositionProperty, теперь можно присваивать значение непосредственно соответствующему свойству. То же самое относится к изображениям материалов и цветам. Все классы Entity и связанные с ними теперь могут быть назначены с использованием анонимных объектов, а также переданы шаблонные объекты. Правильный базовый экземпляр создаётся автоматически. Более подробный обзор изменений в API Entity см. в этом форуме для получения подробной информации.
Изменения, нарушающие работу: — Удалены GeometryPipeline.wrapLongitude, который был объявлен устаревшим в версии 1.4. Вместо него используйте GeometryPipeline.splitLongitude. — Удалён GeometryPipeline.combine, который был объявлен устаревшим в версии 1.4. Используйте GeometryPipeline.combineInstances вместо него.
Устаревшие: — viewerEntityMixin устарел. Он будет удалён в Cesium 1.6. Его функциональность теперь является частью виджета Viewer. — Rectangle.intersectWith устарел. Будет удалён в Cesium 1.6. Используйте Rectangle.intersection, которое аналогично, но возвращает undefined, если два прямоугольника не пересекаются. — Rectangle.isEmpty. 1.4 — 2014-12-01
Изменения:
TerrainProvider
, теперь должны реализовывать функцию getTileDataAvailable
. Обратная совместимость для этого была объявлена устаревшей в Cesium 1.2.Устаревшее:
sourceUri
для GeoJsonDatasource.load
объявлен устаревшим и будет удалён в Cesium 1.6 3 февраля 2015 года (#2257). Вместо него следует использовать options.sourceUri
.GeometryPipeline.wrapLongitude
объявлен устаревшим. Он будет удалён в версии Cesium 1.5 от 2 января 2015 года. Вместо него следует использовать GeometryPipeline.splitLongitude
(#2272).GeometryPipeline.combine
. Он будет удалён в Cesium 1.5. Вместо него следует использовать GeometryPipeline.combineInstances
.Поддержка:
outlineWidth
в EllipseGraphics
, EllipsoidGraphics
, PolygonGraphics
, RectangleGraphics
и WallGraphics
.outlineWidth
поддерживается в пакетах геометрии CZML.stroke-width
в реализации простого стиля GeoJSON.CallbackProperty
.GeoJsonDataSource.load
, GeoJsonDataSource.loadUrl
и GeoJsonDataSource.fromUrl
добавлен параметр options
, который позволяет задавать базовый стиль для каждого экземпляра. Пример Sandcastle (http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=GeoJSON%20and%20TopoJSON.html&label=Showcases).EllipseGeometry
, EllipseOutlineGeometry
, CircleGeometry
и CircleOutlineGeometry
.WebMapTileServiceImageryProvider
добавлен параметр tileMatrixLabels
.PolylineGeometry
, которая приводила к разделению геометрии на IDL только для 3D сцен (#1197).Primitive
добавлены параметры modelMatrix
и cull
.translation
для Matrix4.fromRotationTranslation
по умолчанию равен Cartesian3.ZERO
.ModelNode.matrix
.Camera.tilt
теперь ограничено диапазоном [-pi / 2, pi / 2] вместо [0, pi / 2].Cesium теперь поставляется со стандартным файлом web.config для упрощения развёртывания IIS.
Изменения, нарушающие работу (почему так много?)
DynamicLabel -> LabelGraphics;
DynamicLabelVisualizer -> LabelVisualizer;
DynamicModel -> ModelGraphics;
DynamicModelVisualizer -> ModelVisualizer;
DynamicPath -> PathGraphics;
DynamicPathVisualizer -> PathVisualizer;
DynamicPoint -> PointGraphics;
DynamicPointVisualizer -> PointVisualizer;
DynamicPolygon -> PolygonGraphics;
DynamicPolyline -> PolylineGraphics;
DynamicRectangle -> RectangleGraphics;
DynamicWall -> WallGraphics;
viewerDynamicObjectMixin -> viewerEntityMixin;
— Удалены DynamicVector и DynamicVectorVisualizer.
— Renamed DataSource.dynamicObjects в DataSource.entities.
— EntityCollection.getObjects() и CompositeEntityCollection.getObjects() теперь являются свойствами с именами EntityCollection.entities и CompositeEntityCollection.entities соответственно.
— При использовании viewerEntityMixin переименованы Viewer.trackedObject и Viewer.selectedObject в Viewer.trackedEntity и Viewer.selectedEntity.
— Функции переименованы для единообразия: * BoundingSphere.getPlaneDistances -> BoundingSphere.computePlaneDistances; * Cartesian[2,3,4].getMaximumComponent -> Cartesian[2,3,4].maximumComponent; * CubicRealPolynomial.realRoots -> CubicRealPolynomial.computeRealRoots; * JulianDate.getTotalDays -> JulianDate.totalDyas; * Matrix3.getEigenDecompostion -> Matrix3.computeEigenDecomposition; * Occluder.getVisibility -> Occluder.computeVisibility; * QuadraticRealPolynomial.discriminant -> QuadraticRealPolynomial.computeDiscriminant; * QuarticRealPolynomial.discriminant -> QuarticRealPolynomial.computeDiscriminant.
И так далее. Экстраполировать данные за пределы диапазона времени выборки по умолчанию.
Изменены следующие функции на свойства:
TerrainProvider.hasWaterMask
CesiumTerrainProvider.hasWaterMask
ArcGisImageServerTerrainProvider.hasWaterMask
EllipsoidTerrainProvider.hasWaterMask
VRTheWorldTerrainProvider.hasWaterMask
.Удалено ScreenSpaceCameraController.ellipsoid
. Поведение, которое зависело от эллипсоида, теперь определяется на основе состояния сцены.
Примеры Sandcastle теперь автоматически оборачивают пример кода в шаблон RequireJS. Чтобы обновить любые пользовательские примеры, скопируйте код в существующий пример (например, Hello World) и сохраните новый файл.
Удалены CustomSensorVolume
, RectangularPyramidSensorVolume
, DynamicCone
, DynamicConeVisualizerUsingCustomSensor
, DynamicPyramid
и DynamicPyramidVisualizer
. Это будет перемещено в плагин в начале августа.
Если Primitive.modelMatrix
изменяется после создания, это влияет только на примитивы с одним экземпляром и только в 3D режиме.
Свойства ImageryLayer
alpha
, brightness
, contrast
, hue
, saturation
и gamma
могут больше не быть функциями. Если вам нужно изменять эти значения каждый кадр, рассмотрите возможность переноса вашей логики в обработчик событий для Scene.preRender
.
Убраны опции closeTop
и closeBottom
из RectangleGeometry
.
Изменения CZML:
CZML теперь версионируется с использованием схемы .. Например, любая реализация CZML 1.0 сможет загрузить любой документ 1. (с постепенным ухудшением качества). Увеличение основного номера версии будет зарезервировано для критических изменений. Мы ожидаем, что эти основные увеличения версии произойдут, поскольку CZML всё ещё находится в разработке, но мы хотели дать разработчикам стабильную цель для работы.
Требуется строка версии "1.0"
в пакете документа, который является обязательным и должен быть первым пакетом в файле CZML. Ранее пакет document
был необязательным. Самый простой пакет документов:
{
"id":"document",
"version":"1.0"
}
Свойство vertexPositions
было удалено. Теперь есть свойство positions
непосредственно на объектах, которые его используют, в настоящее время polyline
, polygon
и wall
.
cone
, pyramid
и vector
были удалены из основной схемы CZML. Они теперь обрабатываются как расширения, поддерживаемые Analytical Graphics, и были переименованы в agi_conicSensor
, agi_customPatternSensor
и agi_vector
соответственно.
Свойство orientation
было изменено, чтобы соответствовать соглашению Cesium. Для обновления существующих документов CZML сопрягите значения кватерниона.
pixelOffset
теперь использует верхний левый угол экрана в качестве начала координат; ранее это был нижний левый угол. Для обновления существующих документов отрицайте значение y
.
Удалены свойства color
, outlineColor
и outlineWidth
из polyline
и path
. Есть новое свойство material
, которое позволяет вам указать различные материалы, такие как solidColor
, polylineOutline
и polylineGlow
.
Добавлена поддержка обнаружения столкновений камеры с рельефом местности в стандартном взаимодействии с мышью.
Модифицировано стандартное поведение мыши при наклоне камеры, чтобы она наклонялась относительно точки щелчка, учитывая рельеф местности.
Стандартное поведение мыши камеры изменено таким образом, чтобы камера смотрела на своё положение при нажатии на небо.
Cesium теперь может отображать неограниченное количество слоёв изображений, независимо от того, сколько текстурных блоков поддерживает оборудование.
Добавлена поддержка рендеринга освещения рельефа с помощью октетно-кодированных нормалей на вершинах. Добавлено CesiumTerrainProvider.requestVertexNormals
для запроса нормалей на вершинах. Добавлен атрибут hasVertexNormals
ко всем поставщикам рельефа, чтобы указать, включены ли нормали на вершинах в запрошенные фрагменты рельефа.
Добавились Globe.getHeight
и Globe.pick
для определения высоты рельефа в заданной точке. Учитывая картографическую координату и выбирая местность с помощью луча.
Добавлены опции scene3DOnly в конструкторы Viewer, CesiumWidget и Scene. Этот параметр оптимизирует использование памяти и производительность для 3D-режима за счёт потери возможности использовать 2D или Columbus View.
В SampledProperty и SampledPositionProperty добавлены forwardExtrapolationType, forwardExtrapolationDuration, backwardExtrapolationType и backwardExtrapolationDuration. Это позволяет пользователю указывать, как свойство вычисляет своё значение, когда оно выходит за пределы диапазона выборочных данных.
Предотвращено мигание примитивов при изменении статических DataSources.
В IntersectionTests добавлены методы rayTriangle, lineSegmentTriangle, raySphere и lineSegmentSphere.
Типы матриц теперь имеют функции добавления и вычитания.
Тип Matrix3 теперь имеет функцию fromCrossProduct.
Добавлены функции CesiumMath.signNotZero, CesiumMath.toSNorm и CesiumMath.fromSNorm.
Модели DataSource и CZML по умолчанию используют ориентацию North-East-Down, если она не указана.
TileMapServiceImageryProvider теперь работает с наборами тайлов, созданными инструментами, которые лучше соответствуют спецификации TMS. В частности, теперь поддерживается профиль global-geodetic или global-mercator (в дополнение к предыдущим geodetic и mercator), и в этих профилях предполагается, что координаты X ограничивающего прямоугольника соответствуют направлению долготы.
EntityCollection и CompositeEntityCollection теперь включают массив изменённых объектов в качестве последнего параметра в их событии onCollectionChanged.
RectangleGeometry, RectangleOutlineGeometry и RectanglePrimitive могут пересекать международную линию перемены дат.
scene.animations.add(Cesium.CameraFlightPath.createAnimation(scene, { destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0) }));
теперь должен выглядеть так:
scene.camera.flyTo({ destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0) });
- В Camera.flyTo и Camera.flyToRectangle:
* options.duration теперь в секундах, а не в миллисекундах.
* endReferenceFrame переименован в endTransform.
* onComplete переименован в complete.
* onCancel переименован в cancel.
- Теперь в секундах, а не в миллисекундах:
* Scene.morphToColumbusView, Scene.morphTo2D и Scene.morphTo3D параметр duration.
* HomeButton конструктор параметров options.duration, HomeButtonViewModel конструктор параметров duration и HomeButtonViewModel.duration.
* SceneModePicker конструктор параметров duration, SceneModePickerViewModel конструктор параметров duration и SceneModePickerViewModel.duration.
* Geocoder и GeocoderViewModel конструктор параметров options.flightDuration и GeocoderViewModel.flightDuration.
* ScreenSpaceCameraController.bounceAnimationTime.
* FrameRateMonitor конструктор параметров options.samplingWindow, options.quietPeriod и options.warmupPeriod.
- Рефакторинг. ДжулианДата должен соответствовать другим основным типам.
Рефакторинг TimeInterval для соответствия другим основным типам.
Удалено TimeIntervalCollection.intersectInterval.
TimeIntervalCollection.findInterval теперь принимает один параметр options вместо отдельных параметров. Код, который выглядел следующим образом: intervalCollection.findInterval(startTime, stopTime, false, true); теперь выглядит так: intervalCollection.findInterval({ start : startTime, stop : stopTime, isStartIncluded : false, isStopIncluded : true });
TimeIntervalCollection.empty был переименован в TimeIntervalCollection.isEmpty.
Удалены Scene.animations и AnimationCollection из публичного API Cesium.
Заменены color, outlineColor и outlineWidth в DynamicPath на свойство material.
ModelAnimationCollection.add и ModelAnimationCollection.addAll переименовали options.startOffset в options.delay. Также переименовали ModelAnimation.startOffset в ModelAnimation.delay.
Сцену Scene.scene2D.projection заменили на Scene.mapProjection, доступную только для чтения. Установите это с помощью опции mapProjection для конструкторов Viewer, CesiumWidget или Scene.
Материалы Fresnel, Reflection и Refraction были перемещены в плагин Materials Pack Plugin (https://github.com/CesiumGS/cesium-materials-pack).
Переименованы функции Simon1994PlanetaryPositions ComputeSunPositionInEarthInertialFrame и ComputeMoonPositionInEarthInertialFrame в computeSunPositionInEarthInertialFrame и computeMoonPositionInEarthInertialFrame соответственно.
Функция конструктора Scene теперь принимает параметр options. В будущих версиях, вероятно, изменятся типы Renderer.
Преобразование методов получения данных в свойства - Имя -> имя - Часы -> часы - Изменённое событие -> изменённое событие - Динамический объект коллекции -> динамические объекты - Событие ошибки -> событие ошибки
Базовый слой выбора был расширен для поддержки выбора местности (#1607). - Функция конструктора базового слоя выбора теперь принимает элемент контейнера и объект параметров вместо центрального тела и коллекции слоёв изображений. - Функция конструктора модели базового слоя теперь принимает объект параметров вместо центрального тела и коллекции слоёв изображений. - Модель поставщика изображений -> модель поставщика - Базовая модель слоя выбора. Выбранное имя -> базовая модель слоя выбора. Подсказка кнопки - Базовая модель слоя выбора. выбранный URL-адрес значка -> базовая модель слоя выбора. URL-адрес изображения кнопки - Базовая модель слоя выбора. Выбранный элемент -> базовая модель слоя выбора. выбранное изображение - базовая модель слоя выбора. Слои изображений были удалены и заменены на базовую модель слоя выбора. центральное тело
Переименовать коллекцию временных интервалов. Очистить в коллекцию временных интервалов. Удалить все
Контекст теперь является приватным. - Удалено сцена. Контекст. Вместо этого используйте сцена. Ширина буфера рисования, сцена. Высота буфера рисования, сцена. Максимальная ширина линии с псевдонимом и сцена. Создайте атлас текстур. - Рекламный щит. Вычислите положение экрана, метка. Вычислите положение экрана, преобразования сцены. Обрежьте до координат окна и преобразования сцены. Обрезать до координат буфера отрисовки, взять сцену в качестве параметра вместо контекста. - Конструктор камеры принимает сцену в качестве параметра вместо контекста
Типы, реализующие интерфейс поставщика изображений, теперь требуют наличия свойства hasAlphaChannel.
Удалена проверка на наличие Chrome Frame, поскольку Chrome Frame больше не поддерживается Google. См. официальное объявление Google (http://blog.chromium.org/2013/06/retiring-chrome-frame.html).
Типам, реализующим DataSource, больше не нужно реализовывать getIsTimeVarying.
Добавлена кнопка помощи навигации, которая при нажатии отображает информацию о том, как перемещаться по земному шару с помощью мыши. Новая кнопка включена по умолчанию в виджете Viewer.
Добавлено свойство minimumPixelSize модели, чтобы модели оставались видимыми при уменьшении масштаба зрителя.
Добавлен DynamicRectangle для поддержки DataSource предоставленной геометрии прямоугольника.
Добавлен DynamicWall для поддержки DataSource предоставленной WallGeometry.
Улучшена производительность загрузки текстур и снижено использование памяти при использовании BingMapsImageryProvider и других поставщиков изображений, которые возвращают false из hasAlphaChannel.
Добавлена возможность смещения сетки в GridMaterial.
GeometryVisualizer теперь создаёт геометрию асинхронно, чтобы предотвратить блокировку браузера.
Добавить Clock.canAnimate, чтобы время не продвигалось вперёд, даже когда часы анимируются.
Viewer теперь предотвращает продвижение времени вперёд, если обрабатывается асинхронная геометрия, чтобы избежать отображения неполной картины. Это можно отключить с помощью настроек Viewer.allowDataSourcesToSuspendAnimation.
Добавлена возможность изменять параметры материала glTF с помощью Model.getMaterial, ModelMaterial и ModelMesh.material.
В модель добавлены свойства asynchronous и ready.
Добавлены Cartesian4.fromColor и Color.fromCartesian4.
Добавлены getScale и getMaximumScale в Matrix2, Matrix3 и flipY
CubeMapFace
Framebuffer
Renderbuffer
ShaderProgram
Texture
TextureAtlas
VertexArray
Finished removing prototype functions. (Use 'static' versions of these functions instead):
BoundingRectangle
BoundingSphere
Plane
Ray
Spherical
Extent
DataSource now has additional required properties, isLoading and loadingEvent as well as a new optional update method which will be called each frame.
Renamed Stripe material uniforms lightColor and darkColor to evenColor и oddColor.
Replaced SceneTransitioner with new functions and properties on the Scene: morphTo2D, morphToColumbusView, morphTo3D, completeMorphOnUserInput, morphStart, morphComplete, and completeMorph.
Removed TexturePool.
Улучшено визуальное качество для полупрозрачных объектов с помощью Weighted Blended Order-Independent Transparency.
Исправлены экстудированные полигоны, отображаемые в южном полушарии. #1490
Исправлен подбор примитивов, имеющих замкнутый вид, нарисованный на поверхности. #1333
Добавлен StripeMaterialProperty для поддержки материала Stripe в DynamicScene.
loadArrayBuffer, loadBlob, loadJson, loadText и loadXML теперь поддерживают загрузку данных из data URI.
Свойство debugShowBoundingVolume на примитивах теперь работает во всех режимах сцены.
Исключено использование пула текстур для текстур изображений поверхности Земли. Использование пула приводило к проблемам с mipmapping в текущих версиях Google Chrome, где некоторые тайлы показывали изображения из совершенно несвязанных частей земного шара.
Изменения, нарушающие работу:
Заменены функции получения/установки свойств:
Scene
CompositePrimitive
Ellipsoid
getRadii -> radii
getRadiiSquared -> radiiSquared
getRadiiToTheFourth -> radiiToTheFourth
getOneOverRadii -> oneOverRadii
getOneOverRadiiSquared oneOverRadiiSquared
CentralBody
EllipsoidalOccluder
EllipsoidTangentPlane
GeographicProjection
WebMercatorProjection
SceneTransitioner
ScreenSpaceCameraController
SkyAtmosphere
TilingScheme, GeographicTilingScheme, WebMercatorTilingSheme
ArcGisMapServerImageryProvider, BingMapsImageryProvider, GoogleEarthImageryProvider, GridImageryProvider, OpenStreetMapImageryProvider, SingleTileImageryProvider, TileCoordinatesImageryProvider, TileMapServiceImageryProvider, WebMapServiceImageryProvider
ArcGisMapServerImageryProvider, BingMapsImageryProvider, GoogleEarthImageryProvider, OpenStreetMapImageryProvider, SingleTileImageryProvider, TileMapServiceImageryProvider, WebMapServiceImageryProvider
ArcGisMapServerImageryProvider
BingMapsImageryProvider
GoogleEarthImageryProvider
WebMapServiceImageryProvider
CesiumTerrainProvider, EllipsoidTerrainProvider, ArcGisImageServerTerrainProvider, VRTheWorldTerrainProvider
TimeIntervalCollection
DataSourceCollection, ImageryLayerCollection, LabelCollection, PolylineCollection, SensorVolumeCollection
BillboardCollection
Removed Scene.getUniformState(). Use scene.context.getUniformState()
Visualizers no longer create a dynamicObject property on the primitives they create. Instead, they set the id property that is standard for all primitives.
The propertyChanged on DynamicScene objects has been renamed to definitionChanged. Also, the event is now raised in the case of an existing property being modified as well as having a new property assigned (previously only property assignment would raise the event).
The visualizerTypes parameter to the DataSouceDisplay has been changed to a callback function that creates an array of visualizer instances.
DynamicDirectionsProperty and DynamicVertexPositionsProperty were both removed, they have been superseded by PropertyArray and PropertyPositionArray, which make it easy for DataSource. Имплементации для создания динамических во времени массивов.
Визуализатор коллекции (VisualizerCollection) был удалён. Его заменил DataSourceDisplay.
Были удалены DynamicEllipsoidVisualizer, DynamicPolygonVisualizer и DynamicPolylineVisualizer. Их заменили GeometryVisualizer и соответствующие имплементации GeometryUpdater: EllipsoidGeometryUpdater, PolygonGeometryUpdater и PolylineGeometryUpdater.
Функции CameraFlightPath были модифицированы так, чтобы они работали в текущей системе отсчёта камеры. Теперь аргументы функции должны быть заданы в мировых координатах, а опциональный фрейм системы отсчёта может быть задан после завершения полёта.
Свойства PixelDatatype теперь являются числами JavaScript, а не экземплярами Enumeration.
Функция combine теперь принимает два объекта вместо массива и по умолчанию копирует поверхностные ссылки. Параметр allowDuplicates был удалён. В случае дублирования свойств будут использоваться свойства первого объекта.
Была удалена функция FeatureDetection.supportsCrossOriginImagery. Эта проверка была полезна только для очень старых версий WebKit.
Были добавлены:
Динамические объекты теперь имеют свойства, соответствующие их геометрическим аналогам, например:
— DynamicEllipse, DynamicPolygon и DynamicEllipsoid теперь имеют свойства, аналогичные свойствам их геометрических аналогов, таких как EllipseGeometry, EllipseOutlineGeometry и т.д. Эти свойства также доступны в CZML.
Также были добавлены:
Исправлены ошибки:
Просмотр экстента.
Наклон камеры в ICRF.
Ошибка разработчика при масштабировании в 2D. Если масштабирование создаст недопустимый усечённый конус, ничего не делается.
WallGeometry, которая не удаляла позиции, которые были менее близки друг к другу менее чем на 6 знаков после запятой. Фиксированные координаты текстуры EllipsoidGeometry. #1454 (https://github.com/CesiumGS/cesium/issues/1454)
Добавлена возможность цикла для Polyline, чтобы соединить первую и последнюю точки. #960 (https://github.com/CesiumGS/cesium/issues/960)
Используйте performance.now() вместо Date.now(), когда это возможно, чтобы ограничить время загрузки фрагментов местности и изображений. Это приводит к более стабильной частоте кадров при загрузке фрагментов на некоторых системах.
Теперь RequestErrorEvent включает заголовки, которые были возвращены с ошибочным ответом.
Добавлен AssociativeArray, который является вспомогательным классом для поддержания хэша объектов, который также часто нужно перебирать.
Добавлено TimeIntervalCollection.getChangedEvent, которое возвращает событие, которое будет вызываться всякий раз, когда интервалы обновляются.
Добавлен второй параметр в Material.fromType для переопределения стандартных униформ. #1522 (https://github.com/CesiumGS/cesium/pull/1522)
Добавлен класс Intersections2D, содержащий операции над 2D треугольниками.
Добавлены автоматические GLSL-униформы czm_inverseViewProjection и czm_inverseModelViewProjection.
Изменения:
должен выглядеть так:
var viewer = new Viewer('cesiumContainer', {
contextOptions : {
webgl : {
alpha : true
}
}
});
Объекты Cartesian3, доступные только для чтения, теперь должны быть клонированы в свойства камеры вместо присвоения. Например, код, который выглядел так:
camera.up = Cartesian3.UNIT_Z;
теперь должен выглядеть так:
Cartesian3.clone(Cartesian3.UNIT_Z, camera.up);
Файлы CSS для отдельных виджетов, например BaseLayerPicker.css, больше не импортируют другие файлы CSS. Большинство В запросе используется язык программирования Cesium.
Приложения должны импортировать widgets.css
(и опционально lighter.css
).
Минифицированный объединённый файл Cesium.js теперь пропускает некоторые проверки DeveloperError для повышения производительности и уменьшения размера файла. При разработке приложения рекомендуется использовать неминифицированную версию локально для раннего обнаружения ошибок, а затем развёртывать минифицированную версию в рабочей среде.
Исправлены ошибки отключения CentralBody.enableLighting. Исправлены полёты Geocoder при следовании за объектом. Виджет Viewer теперь очищает ввод Geocoder, когда пользователь нажимает кнопку «домой». Тип ввода Geocoder был изменён на search, что улучшает удобство использования (особенно на мобильных устройствах). Также были внесены некоторые другие незначительные улучшения стиля.
Добавлены свойства CentralBody.maximumScreenSpaceError, translateEventTypes, zoomEventTypes, rotateEventTypes, tiltEventTypes и lookEventTypes в ScreenSpaceCameraController для изменения стандартных вводов мыши по умолчанию.
Добавлена функция setPixelOffsetScaleByDistance в Billboard, Label, DynamicBillboard и DynamicLabel для управления минимальным/максимальным масштабированием pixelOffset на основе расстояния камеры. Добавлены BoundingSphere.transformsWithoutScale и функции fromArray в Matrix2, Matrix3 и Matrix4. Добавлены Matrix4.multiplyTransformation и Matrix4.multiplyByPointAsVector.
b23 — 2013-12-02
Изменения:
должен выглядеть так:
var spline = new HermiteSpline({ times : [ 0.0, 1.5, 3.0, 4.5, 6.0 ], points : [ new Cartesian3(1235398.0, -4810983.0, 4146266.0), new Cartesian3(1372574.0, -5345182.0, 4606657.0), new Cartesian3(-757983.0, -5542796.0, 4514323.0), new Cartesian3(-2821260.0, -5248423.0, 4021290.0), new Cartesian3(-2539788.0, -4724797.0, 3620093.0) ] });
b22 — 2013-11-01
Изменения:
Изменена направленность вращения в Matrix3.fromQuaternion и Quaternion.fromRotationMatrix для соответствия графическим соглашениям.
Удалены следующие прототипные функции:
Заменены свойства color, outlineColor и outlineWidth в DynamicPolyline на одно свойство material.
Renamed DynamicBillboard.nearFarScalar в DynamicBillboard.scaleByDistance.
Все источники данных теперь должны реализовывать метод DataSource.getName, который возвращает понятное пользователю имя источника данных.
Объекты документа CZML больше не добавляются в DynamicObjectCollection, создаваемый CzmlDataSource. Вместо этого используйте интерфейс CzmlDataSource для доступа к данным.
Методы TimeInterval.equals и TimeInterval.equalsEpsilon теперь также сравнивают данные интервала.
Все файлы SVG были удалены из Widgets/Images и заменены новым классом SvgPath.
Виджеты панели инструментов (Home, SceneMode, BaseLayerPicker) и кнопка полноэкранного режима теперь зависят от CesiumWidget.css для глобальных стилей кнопок Cesium.
Виджеты панели инструментов теперь ожидают, что их container будет самой панелью инструментов, нет необходимости в отдельных контейнерах для каждого виджета на панели.
От реализаций Property теперь требуется реализовать прототипную функцию equals.
ConstantProperty и TimeIntervalCollectionProperty больше не принимают функцию clone и вместо этого требуют, чтобы объекты реализовывали прототипные функции clone и equals.
Конструктор SkyBox теперь принимает аргумент options с свойством sources вместо непосредственного принятия источников.
Метод SkyBox.getSources заменён на SkyBox.sources.
Свойство bearing в DynamicEllipse теперь называется rotation.
В CZML свойство ellipse.bearing теперь называется ellipse.rotation.
Добавлен виджет Geocoder, который позволяет пользователям вводить адрес или название ориентира и приближать камеру к этому местоположению. Он включён по умолчанию в приложениях, использующих виджет Viewer.
Добавлен GoogleEarthImageryProvider.
Добавлены Moon для рисования Луны и IauOrientationAxes для вычисления ориентации Луны.
Добавлено свойство Material.translucent. Установите это свойство или Appearance.translucent для правильного порядка рендеринга. Полупрозрачные геометрии отображаются после непрозрачных геометрий.
Добавлены свойства enableLighting, lightingFadeOutDistance и lightingFadeInDistance в CentralBody для настройки освещения.
Добавлены Billboard.setTranslucencyByDistance, Label.setTranslucencyByDistance, DynamicBillboard.translucencyByDistance и DynamicLabel.translucencyByDistance для управления минимальной/максимальной прозрачностью в зависимости от расстояния до камеры.
Добавлены PolylineVolumeGeometry и PolylineVolumeGeometryOutline.
Добавлен Shapes.compute2DCircle.
Добавлена вкладка Appearances в Sandcastle с примером для каждого внешнего вида геометрии.
Добавлен Scene.drillPick для возврата списка объектов, каждый из которых содержит 1 примитив в позиции экранного пространства.
Добавлен PolylineOutlineMaterialProperty для использования с... Динамическая полилиния. Материал.
Добавлена возможность использовать объекты Array и JulianDate в качестве пользовательских свойств CZML.
Добавлены DynamicObject.name и соответствующая поддержка CZML. Это не уникальное, удобочитаемое имя объекта.
Добавлены DynamicObject.parent и соответствующая поддержка CZML. Это позволяет объектам DataSource представлять данные иерархически.
Добавлено DynamicPoint.scaleByDistance для управления минимальным/максимальным размером точки в зависимости от расстояния от камеры.
Панель инструментов (Home, SceneMode, BaseLayerPicker) и полноэкранная кнопка теперь могут быть оформлены непосредственно с помощью предоставленного пользователем CSS.
В конструкторы CesiumWidget и Viewer добавлен skyBox для изменения стандартных звёзд.
Добавлен Matrix4.fromTranslationQuaternionRotationScale и Matrix4.multiplyByScale.
Добавлен Matrix3.getEigenDecomposition.
Добавлена служебная функция getFilenameFromUri, которая возвращает последний сегмент URL по заданному URI с параметрами запроса или без них.
Прототипы методов equals и equalsEpsilon возвращены в Cartesian2, Cartesian3, Cartesian4 и Quaternion.
Прототип функции equals добавлен в NearFarScalar и TimeIntervalCollection.
Добавлены события FrameState.events.
Для экономии памяти при отсутствии необходимости выбора добавлен Primitive.allowPicking.
Добавлен debugShowBoundingVolume для отладки рендеринга примитивов в Primitive, Polygon, ExtentPrimitive, EllipsoidPrimitive, BillboardCollection, LabelCollection и PolylineCollection.
Добавлен DebugModelMatrixPrimitive для отладки modelMatrix примитива.
В конструктор EllipsoidPrimitive добавлен аргумент options.
Обновлён Knockout с версии 2.3.0 до 3.0.0.
Обновлены RequireJS до версии 2.1.9 и Almond до 0.2.6.
Всем примитивам присвоен пользовательский id для использования с выбором. Например:
primitives.add(new Polygon({ id: { // Пользовательский объект, возвращаемый Scene.pick }, // ... })); // ... var p = scene.pick(/* ... */); if (defined(p) && defined(p.id)) { // Используем свойства и функции в p.id }
Изменения:
Теперь Cesium выводит напоминание в консоль, если ваше приложение использует изображения Bing Maps, а вы не предоставляете ключ Bing Maps для своего приложения. Это напоминание о том, что вам следует как можно скорее создать ключ Bing Maps и до развёртывания приложения. Вы можете создать ключ Bing Maps, посетив https://www.bingmapsportal.com/. Установите свойство BingMapsApi.defaultKey на значение ключа вашего приложения перед созданием CesiumWidget или любых других типов, использующих API Bing Maps.
BingMapsApi.defaultKey = 'my-key-generated-with-bingmapsportal.com';
Scene.pick теперь возвращает объект с свойством primitive, а не сам примитив. Например, код, который выглядел так:
var primitive = scene.pick(/* ... */); if (defined(primitive)) { // Использовать примитив }
должен выглядеть так:
var p = scene.pick(/* ... */);
if (defined(p) && defined(p.primitive)) {
// Использовать p.primitive
}
Из Camera удалены getViewMatrix, getInverseViewMatrix, getInverseTransform, getPositionWC, getDirectionWC, getUpWC и getRightWC. Вместо этого используйте свойства viewMatrix, inverseViewMatrix, inverseTransform, positionWC, directionWC, upWC и rightWC.
Из PerspectiveFrustum, PerspectiveOffCenterFrustum и OrthographicFrustum удалены getProjectionMatrix и getInfiniteProjectionMatrix. Вместо этого используйте свойства projectionMatrix и infiniteProjectionMatrix.
Удалены следующие прототипы функций:
— Из Quaternion: conjugate, magnitudeSquared, magnitude, normalize, inverse, add, subtract, negate, dot, multiply, multiplyByScalar, divideByScalar, getAxis, getAngle. Удалены CzmlBoolean, CzmlCartesian2, CzmlCartesian3, CzmlColor, CzmlDefaults, CzmlDirection, CzmlHorizontalOrigin, CzmlImage, CzmlLabelStyle, CzmlNumber, CzmlPosition, CzmlString, CzmlUnitCartesian3, CzmlUnitQuaternion, CzmlUnitSpherical и CzmlVerticalOrigin, поскольку они больше не нужны.
Удалены DynamicProperty, DynamicMaterialProperty, DynamicDirectionsProperty и DynamicVertexPositionsProperty; вместо них используется новая система свойств:
Процесс Czml заменён на CzmlDataSource.
Source/Widgets/Viewer/lighter.css был удалён, используйте Source/Widgets/lighter.css вместо него.
Параметры ExtentGeometry для экструдированной экстенты были заменены, чтобы они соответствовали другим геометриям:
Конструкторы геометрии больше не вычисляют вершины или индексы. Используйте метод createGeometry типа. Например, код, который выглядел так: var boxGeometry = new BoxGeometry({ minimumCorner : min, maximumCorner : max, vertexFormat : VertexFormat.POSITION_ONLY }); должен выглядеть так:
var box = new BoxGeometry({ minimumCorner : min, maximumCorner : max, vertexFormat : VertexFormat.POSITION_ONLY }); var geometry = BoxGeometry.createGeometry(box);
Из каждого перечисления ComponentDatatype удалены createTypedArray и createArrayBufferView. Вместо этого используйте ComponentDatatype.createTypedArray и ComponentDatatype.createArrayBufferView.
DataSourceDisplay теперь требует передачи DataSourceCollection в его конструктор.
DeveloperError и RuntimeError больше не содержат свойства error. Вызовите toString или проверьте свойство stack напрямую.
CreatePickFragmentShaderSource заменено на createShaderSource.
PolygonPipeline.earClip2D переименован в PolygonPipeline.triangulate.
Добавлены контурные геометрии.
Добавлен CorridorGeometry.
Добавлено Billboard.scaleByDistance и NearFarScalar для управления минимальным/максимальным масштабом рекламного щита на основе расстояния до камеры.
Добавлен EllipsoidGeodesic.
Добавлен PolylinePipeline.scaleToSurface.
Добавлен PolylinePipeline.scaleToGeodeticHeight.
Добавлена возможность указать minimumTerrainLevel и maximumTerrainLevel при создании ImageryLayer. Слой будет отображаться только для фрагментов местности в указанном диапазоне.
Добавлены Math.setRandomNumberSeed и Math.nextRandomNumber для... Генерация повторяемых случайных чисел.
Изменения:
Добавлены геометрия и внешний вид.
ExtentGeometry
.Credit
и CreditDisplay
для отображения кредитов на экране.CustomSensorVolume
и RectangularPyramidSensorVolume
.configureFromPolygonHierarchy
.CesiumViewerWidget
, вместо него добавлен новый виджет Viewer
с архитектурой миксинов. Этот новый виджет не зависит от Dojo и является частью объединенного файла Cesium.js. Он предназначен для гибкой базовой основы для легкого создания надежных приложений. (#838)clockViewModel.shouldAnimate()
-> clockViewModel.shouldAnate
clockViewModel.shouldAnimate(true);
-> clockViewModel.shouldAnimate = true;
ImageryProviderViewModel.fromConstants
был удален. Используйте конструктор ImageryProviderViewModel
напрямую.transitioner
в CesiumWidget
, HomeButton
и ScreenModePicker
в sceneTrasitioner
для соответствия соглашению об именовании свойств.ImageryProvider.loadImage
требует, чтобы вызывающий экземпляр провайдера изображений передавался в качестве первого параметра.checkForChromeFrame
, основанная на Dojo, и заменена новой автономной версией, которая возвращает обещание сигнализировать о завершении асинхронной проверки.Assets/Textures/NE2_LR_LC_SR_W_DR_2048.jpg
. Если вы ранее использовали это изображение с SingleTileImageryProvider
, рассмотрите возможность использования TileMapServiceImageryProvider
с URL-адресом Assets/Textures/NaturalEarthII
.Client CZML
было удалено, в основном потому, что оно дублирует демо Simple CZML.Two Viewer Widgets
. Мы добавим пример с несколькими сценами, когда у нас будет хорошая архитектура для этого.clone
во всех объектах таким образом, что если клонируемый объект не определен, функция вернет неопределенное значение вместо того, чтобы выдать исключение.CesiumWidget
(#608, #834).Billboard
добавлены свойства вращения, выровненной оси, ширины и высоты.TileMapServiceImageryProvider
теперь поддерживает изображения с минимальным уровнем. Это улучшает совместимость с наборами фрагментов, созданными MapTiler или gdal2tiles.py с использованием их настроек по умолчанию.Context.getAntialias
.BaseLayerPicker
, где уничтожение не очищало все должным образом.Timeline
.screenSpaceEventHandler
в CesiumWidget
. Также добавлена опция sceneMode
в конструктор для установки начального режима сцены.useDefaultRenderLoop
в CesiumWidget
, которое позволяет отключить стандартный цикл рендеринга, чтобы можно было использовать пользовательский цикл рендеринга.CesiumWidget.onRenderLoopError
, который представляет собой Event
, возникающий при возникновении исключения внутри стандартного цикла рендеринга.ImageryProviderViewModel.creationCommand
теперь может возвращать массив экземпляров ImageryProvider, что позволяет добавлять несколько слоев. Когда в виджете BaseLayerPicker
выбран один элемент:Изменения:
Uniform.getFrameNumber
и Uniform.getTime
заменены на метод Uniform.getFrameState
, который возвращает полное состояние кадра.Widgets/Fullscreen
переименована в Widgets/FullscreenButton
, а также связанные объекты и файлы. Например, FullscreenWidget
стал FullscreenButton
, FullscreenViewModel
— FullscreenButtonViewModel
.DynamicObjectView
в 3D. Объект автоматически выбирает LVLH или EastNorthUp в зависимости от своей скорости.CzmlDirection
, DynamicVector
и DynamicVectorVisualizer
.SceneTransforms.wgs84ToWindowCoordinates
(#746).fromElements
добавлен в Cartesian2
, Cartesian3
и Cartesian4
.DrawCommand.cull
добавлена возможность избежать избыточных проверок видимости.czm_morphTime
добавлено.OES_vertex_array_object
, что улучшает производительность рендеринга.IntersectionTests.trianglePlaneIntersection
.computeHorizonCullingPoint
, computeHorizonCullingPointFromVertices
и computeHorizonCullingPointFromExtent
добавлены в класс EllipsoidalOccluder
для более точного теста окклюзии горизонта при рендеринге ландшафта.Sun
и Scene.sun
.HomeButton
позволяет вернуться к стандартному виду текущего режима сцены.Command.beforeExecute
и Command.afterExecute
позволяют выполнять дополнительную обработку при выполнении команды.Polygon.configureExtent
.CameraController.getExtentCameraCoordinates
и CameraFlightPath.createAnimationExtent
.frameState.mode === SceneMode.MORPHING
.2008-11-10T14:00:00+02:30
.Изменения:
Унифицированные изменения:
var polyline = polylineCollection.add({
positions : positions,
color : new Color(1.0, 1.0, 1.0, 1.0),
outlineColor : new Color(1.0, 0.0, 0.0, 1.0),
width : 1.0,
outlineWidth : 3.0
});
должен выглядеть так: ``` var outlineMaterial = Material.fromType(context, Material.PolylineOutlineType); outlineMaterial.uniforms.color = new Color(1.0, 1.0, 1.0, 1.0); outlineMaterial.uniforms.outlineColor = new Color(1.0, 0.0, 0.0, 1.0); outlineMaterial.uniforms.outlinewidth = 2.0;
var polyline = polylineCollection.add({
positions : positions,
width : 3.0,
material : outlineMaterial
});
```
CzmlCartographic
удалён, все картографические значения во время обработки CZML преобразуются во внутренние декартовы координаты. Это повышает производительность и исправляет интерполяцию исходных картографических данных. Картографическое представление всё ещё можно получить при необходимости.ComplexConicSensorVolume
, который не был документирован. - Не работало на большинстве платформ. Будет возвращено в будущем релизе. Это не влияет на CZML, который использует специальный сенсор для аппроксимации сложной коники.computeSunPosition
на Simon1994PlanetaryPosition
, которое имеет функции для более точного расчёта положения солнца и луны.Context.createClearState
. Эти свойства теперь являются частью ClearCommand
.RenderState
, возвращаемые из Context.createRenderState
, теперь неизменяемы.positionMC
из czm_materialInput
. Он больше не используется никакими материалами.PolylineOutline
, PolylineGlow
, PolylineArrow
и Fade
.czm_pixelSizeInMeters
.AnimationViewModel.snapToTicks
, которая при установке в значение true заставляет кольцо шаттла на виджете анимации привязываться к определённым значениям тиков, а не интерполировать между ними.Color.toRgba
и Color.fromRgba
для преобразования в/из числовых значений без знака 32-битных RGBA.GridImageryProvider
для пользовательских эффектов рендеринга и отладки.Grid
.EllipsoidPrimitive
двусторонним.EllipsoidPrimitive
выделение и выделение объектов с материалами, имеющими прозрачные части.Billboard.computeScreenSpacePosition
теперь принимает аргументы Context
и FrameState
вместо аргумента UniformState
.clampToPixel
из BillboardCollection
и LabelCollection
. Эта опция больше не нужна из-за общих улучшений визуализации LabelCollection.Widgets/Dojo/CesiumWidget
и заменён на Widgets/CesiumWidget
, который не зависит от Dojo.destroyObject
больше не удаляет свойства из уничтожаемого объекта.darker.css
были удалены, и тема darker
теперь является стилем по умолчанию для виджетов. Оригинальная тема теперь известна как lighter
и находится в соответствующих файлах lighter.css
.cesium-<widget>-<className>
.view2D
, view3D
и viewColumbus
удалены из CesiumViewerWidget
. Вместо этого используйте свойство sceneTransitioner
.BoundingSphere.fromCornerPoints
.fromArray
и distance
в Cartesian2
, Cartesian3
и Cartesian4
.DynamicPath.resolution
для установки максимального шага, в секундах, при выборке позиции для визуализации пути.TileCoordinatesImageryProvider
, который отображает изображения с координатами X, Y, Level тайлов на поверхности земного шара. В основном это полезно для отладки.DynamicEllipse
и свойство DynamicObject.ellipse
для отображения CZML-эллипсов на земном шаре.sampleTerrain
для выборки высоты рельефа списка позиций Cartographic
.DynamicObjectCollection.removeObject
и обработка нового свойства CZML delete
.show
, тайлы изображений в слое с альфой 0,0 всё ещё загружаются, поэтому слой станет видимым быстрее, когда его альфа будет увеличена.onTransitionStart
и onTransitionComplete
в SceneModeTransitioner
.SceneModePicker
; новый виджет для перехода между режимами сцены.BaseLayerPicker
; новый виджет для переключения. Изменения материалов.
b12a — 2013-01-18
Критические изменения:
Свойство server при создании BingMapsImageryProvider переименовано в url. Аналогично, BingMapsImageryProvider.getServer переименован в BingMapsImageryProvider.getUrl. Код, который выглядел как:
var bing = new BingMapsImageryProvider({ server : 'dev.virtualearth.net' });
должен выглядеть так:
var bing = new BingMapsImageryProvider({
url : 'http://dev.virtualearth.net'
});
Добавлен fromCssColorString в Color для создания экземпляра Color из любого значения CSS.
Добавлен fromHsl в Color для создания экземпляра Color по H, S, L значениям.
Добавлено Scene.backgroundColor.
Добавлены параметры textureRotationAngle в Polygon.setPositions и Polygon.configureFromPolygonHierarchy для поворота текстур на полигонах.
Добавлены Matrix3.fromRotationX, Matrix3.fromRotationY, Matrix3.fromRotationZ и Matrix2.fromRotation.
Добавлены fromUniformScale в Matrix2, Matrix3 и Matrix4.
Добавлены fromScale в Matrix2.
Добавлена функция multiplyByUniformScale в Matrix4.
При вызове Context.createTexture2D и Context.createCubeMap добавлено свойство flipY.
Добавлены MeshFilters.encodePosition и EncodedCartesian3.encode.
Исправлены артефакты дрожания с полигонами.
Исправлено наклон камеры вблизи minimumZoomDistance.
Исправлена ошибка, которая могла привести к появлению синих плиток при приближении к Северному и Южному полюсам.
Исправлена ошибка, когда удаление меток приводило к удалению неправильной метки и в конечном итоге вызывало сбой.
Обойдено ограничение Firefox 18, препятствующее передаче типизированных массивов в веб-воркеры или из них.
Обновлён RequireJS до версии 2.1.2 и Almond до 0.2.3.
Обновили ключ API Bing Maps по умолчанию.
b12 — 2013-01-03
b11 — 2012-12-03
parameter.
Перевод:
Параметр.
CentralBody.dayTileProvider был удалён. Вместо этого добавьте один или несколько провайдеров изображений в коллекцию, возвращаемую методом CentralBody.getImageryLayers().
Параметр description.generateTextureCoords, передаваемый в ExtentTessellator.compute, теперь называется description.generateTextureCoordinates.
Методы bringForward, sendBackward, bringToFront и sendToBack на CompositePrimitive были переименованы в raise, lower, raiseToTop и lowerToBottom соответственно.
Cache и CachePolicy больше не используются и были удалены.
Исправлена проблема с запуском виджета Dojo, а также удалён обратный вызов «postSetup» в процессе. См. примеры Sandcastle и обновите свой стартовый код.
Теперь CentralBody позволяет накладывать слои изображений из разных источников и альфа-смешивать их на глобусе. См. новые примеры Sandcastle для картографических проекций и слоёв изображений.
Добавлен WebMapServiceImageryProvider.
Улучшено поведение щелчка средней кнопкой мыши, чтобы всегда наклонять в одном направлении.
Добавлены методы getElementIndex в Matrix2, Matrix3 и Matrix4.
b9 — 2012-10-01
Критические изменения:
Убраны функции render и renderForPick примитивов. Функция обновления примитива update обновляет список команд для рендерера. Для получения более подробной информации см. раздел «Детали рендеринга на основе данных» (Data Driven Renderer) на вики CesiumGS/cesium.
Убраны Context.getViewport и Context.setViewport. По умолчанию область просмотра соответствует размеру холста, если примитив не переопределяет свойство области просмотра в состоянии рендера.
Убрана функция shallowEquals.
Передача undefined любой из функций set на Billboard теперь вызывает исключение.
Передача undefined любой из функций set на Polyline теперь вызывает исключение.
PolygonPipeline.scaleToGeodeticHeight теперь принимает эллипсоид в качестве последнего параметра вместо первого. Также теперь по умолчанию используется Ellipsoid.WGS84, если параметр не указан.
Новый редактор Sandcastle в реальном времени и демонстрационная галерея заменяют примеры Sandbox и Skeleton.
Повышена производительность и точность выбора.
Добавлен EllipsoidPrimitive для визуализации эллипсоидов и сфер. В настоящее время это поддерживается только в 3D, но не в 2D или режиме Columbus.
Добавлены DynamicEllipsoid и DynamicEllipsoidVisualizer, которые используют новый EllipsoidPrimitive для реализации эллипсоидов в CZML.
Функции Extent теперь принимают необязательные параметры результата. Также добавлены функции getCenter, intersectWith и contains.
Добавлен новый служебный класс DynamicObjectView для отслеживания DynamicObject с камерой в различных режимах сцены; также подключён CesiumViewerWidget для его использования.
Добавлены свойства enableTranslate, enableZoom и enableRotate в Camera2DController для выборочного переключения поведения камеры. Все значения по умолчанию равны true.
Добавлена Camera2DController.setPositionCartographic для упрощения программного перемещения камеры в режиме 2D.
Улучшены расстояния до ближней и дальней плоскости и устранена z-конфликтность.
Добавлены Matrix4.multiplyByTranslation, Matrix4.fromScale и Matrix3.fromScale.
b8 — 2012-09-05
Критические изменения:
Материалы теперь создаются через централизованный класс Material с использованием схемы JSON, называемой Fabric. Например, измените:
polygon.material = new BlobMaterial({repeat : 10.0});
на:
polygon.material = Material.fromType(context, 'Blob');
polygon.material.repeat = 10.0;
или:
polygon.material = new Material({
context : context,
fabric : {
type : 'Blob',
uniforms : {
repeat : 10.0
}
}
});
Label.computeScreenSpacePosition теперь требует текущего состояния сцены в качестве параметра.
Передача undefined любой из функций set на Label теперь вызывает исключение.
Префикс agi_ на идентификаторах GLSL заменён на czm_.
Свойства vertexShader и fragmentShader в ViewportQuad заменены на необязательные. Аргументы конструктора.
Изменён GLSL автоматический юниформ czm_viewport
с ivec4
на vec4
, чтобы уменьшить приведение типов.
Billboard
теперь по умолчанию использует индекс изображения -1
, что указывает на отсутствие текстуры, ранее рекламные щиты по умолчанию использовали 0
, что указывало на первую текстуру в атласе. Например, измените:
billboards.add({ position : { x : 1.0, y : 2.0, z : 3.0 }, });
на:
billboards.add({ position : { x : 1.0, y : 2.0, z : 3.0 }, imageIndex : 0 });
SceneState
в FrameState
.SunPosition
был изменён со статического объекта на функцию computeSunPosition
, которая теперь возвращает Cartesian3
с вычисленным положением. Также она была оптимизирована для производительности и снижения нагрузки на память. Например, замените:var result = SunPosition.compute(date); var position = result.position;
на:
var position = computeSunPosition(date);
Quaternion
теперь имеют статические версии, которые работают с любыми объектами, предоставляющими свойства x
, y
, z
и w
.Polygon.configureFromPolygonHierarchy
.BillboardCollection
, Polygon
, PolylineCollection
и т. д., могут быть отсечены. Подробные сведения см. в расширенных примерах в Sandbox.writeTextToCanvas
, которая обрабатывает изменение размера результирующего холста в соответствии с желаемым текстом.DynamicPath
и DynamicPathVisualizer
. Подробные сведения см. на вики CZML (https://github.com/CesiumGS/cesium/wiki/CZML-Guide).Framebuffer.setDepthTexture
.CesiumMath.isPowerOfTwo
.affectedByLighting
к ComplexConicSensorVolume
, CustomSensorVolume
и RectangularPyramidSensorVolume
, чтобы включать и выключать освещение для этих объектов.Polygon
, Cone
и Pyramid
больше не подвержены влиянию освещения.czm_viewRotation
и czm_viewInverseRotation
.BillboardCollection
и LabelCollection
добавлено свойство clampToPixel
. Когда оно истинно, все рекламные щиты и текст выравниваются по пикселю в пространстве экрана, обеспечивая более чёткое изображение за счёт более резкого движения.Ellipsoid
теперь принимают необязательные параметры результата.Изменения:
EventHandler
.TextureAtlas
принимает объектный литерал в своём конструкторе вместо отдельных параметров. Код, который раньше выглядел так:context.createTextureAtlas(images, pixelFormat, borderWidthInPixels);
теперь должен выглядеть так:
context.createTextureAtlas({images : images, pixelFormat : pixelFormat, borderWidthInPixels : borderWidthInPixels});
Camera.pickEllipsoid
возвращает выбранное положение в мировых координатах, а параметр эллипсоида является необязательным. Предпочитайте новый метод Scene.pickEllipsoid
. Например, заменитеvar position = camera.pickEllipsoid(ellipsoid, windowPosition);
на
var position = scene.pickEllipsoid(windowPosition, ellipsoid);
Camera.getPickRay
теперь возвращает новый тип Ray
вместо объекта со свойствами положения и направления.Camera.viewExtent
теперь принимает аргумент Extent
вместо аргументов запад, юг, восток и север. Предпочитайте Scene.viewExtent
над Camera.viewExtent
. Scene.viewExtent
будет работать в любом режиме SceneMode
. Например, заменитеcamera.viewExtent(ellipsoid, west, south, east, north);
на
scene.viewExtent(extent, ellipsoид);
CameraSpindleController.mouseConstrainedZAxis
. Вместо этого используйте CameraSpindleController.constrainedAxis
. Код, который ранее выглядел так:spindleController.mouseConstrainedZAxis = true;
должен теперь выглядеть так:
spindleController.constrainedAxis = Изменения в коде:
В конструкторе Camera2DController
и методе CameraControllerCollection.add2D
теперь требуется проекция вместо эллипсоида.
Удалена сущность Chain
. when
теперь включён как более полная реализация CommonJS Promises/A.
Метод Jobs.downloadImage
был заменён на loadImage
, чтобы предоставить обещание, которое будет асинхронно загружать изображение.
jsonp
теперь возвращает обещание для запрошенных данных, устраняя необходимость в параметре обратного вызова.
Метод JulianDate.getTimeStandard() был удалён, даты теперь всегда хранятся внутри как TAI.
LeapSeconds.setLeapSeconds теперь принимает массив экземпляров LeapSecond вместо JSON.
Методы TimeStandard.convertUtcToTai и TimeStandard.convertTaiToUtc были удалены, поскольку они больше не нужны.
Метод Cartesian3.prototype.getXY()
был заменён методом Cartesian2.fromCartesian3
. Код, который ранее выглядел как cartesian3.getXY();
, теперь должен выглядеть как Cartesian2.fromCartesian3(cartesian3);
.
Метод Cartesian4.prototype.getXY()
был заменён методом Cartesian2.fromCartesian4
. Код, который ранее выглядел как cartesian4.getXY();
теперь должен выглядеть как Cartesian2.fromCartesian4(cartesian4);
.
Метод Cartesian4.prototype.getXYZ()
был заменён методом Cartesian3.fromCartesian4
. Код, который ранее выглядел как cartesian4.getXYZ();
теперь должен выглядеть как Cartesian3.fromCartesian4(cartesian4);
Метод Math.angleBetween
был удалён, так как он дублировал метод Cartesian3.angleBetween
. Просто замените вызовы первого на второй.
Сущность Cartographic3
была переименована в Cartographic
.
Сущность Cartographic2
была удалена; используйте Cartographic
вместо неё.
Метод Ellipsoid.toCartesian был переименован в Ellipsoid.cartographicToCartesian.
Метод Ellipsoid.toCartesians был переименован в Ellipsoid.cartographicArrayToCartesianArray.
Метод Ellipsoid.toCartographic2 был переименован в Ellipsoid.cartesianToCartographic.
Метод Ellipsoid.toCartographic2s был переименован в Ellipsoid.cartesianArrayToCartographicArray.
Метод Ellipsoid.toCartographic3 был переименован в Ellipsoid.cartesianToCartographic.
Метод Ellipsoid.toCartographic3s был переименован в Ellipsoid.cartesianArrayToCartographicArray.
Метод Ellipsoid.cartographicDegreesToCartesian был удалён. Код, который раньше выглядел как ellipsoid.cartographicDegreesToCartesian(new Cartographic(45, 50, 10))
, теперь должен выглядеть так: ellipsoid.cartographicToCartesian(Cartographic.fromDegrees(45, 50, 10))
.
Методы Math.cartographic3ToRadians, Math.cartographic2ToRadians, Math.cartographic2ToDegrees и Math.cartographic3ToDegrees были удалены. Эти функции больше не нужны, потому что экземпляры Cartographic всегда представлены в радианах.
Все функции, начинающиеся с multiplyWith, теперь начинаются с multiplyBy, чтобы соответствовать функциям, начинающимся с divideBy.
Функция multiplyWithMatrix на каждом типе Matrix была переименована в multiply.
Все три класса Matrix были в значительной степени переписаны для обеспечения согласованности и производительности. Свойство values было устранено, и матрицы больше не являются неизменяемыми. Код, который раньше выглядел так: matrix = matrix.setColumn0Row0(12); теперь выглядит так: matrix[Matrix2.COLUMN0ROW0] = 12; код, который раньше выглядел так: matrix.setColumn3(cartesian3), теперь выглядит так: matrix.setColumn(3, cartesian3, matrix).
Polyline больше нельзя создавать извне. Чтобы создать Polyline, используйте метод PolylineCollection.add.
Polyline polyline = new Polyline();
теперь выглядит так:
PolylineCollection polylineCollection = new PolylineCollection(); Polyline polyline = polylineCollection.add();
Camera.pickEllipsoid
для получения точки на земном шаре под курсором мыши.Polygon.height
для рисования полигонов на постоянной высоте над эллипсоидом.Geoscope.Constants
и Geoscope.Trig
заменены на Geoscope.Math
.Polygon
:
setColor
и getColor
заменены свойством material.color
.setEllipsoid
и getEllipsoid
заменены свойством ellipsoid
.setGranularity
и getGranularity
заменены свойством granularity
.Polyline
:
setColor
/ getColor
и setOutlineColor
/ getOutlineColor
заменены свойствами color
и outline
.setWidth
/ getWidth
и setOutlineWidth
/ getOutlineWidth
заменены свойствами width
и outlineWidth
.Geoscope.BillboardCollection.bufferUsage
. Теперь оно определяется автоматически.set
/get
класса Geoscope.Label
для свойств shadowOffset
, shadowBlur
, shadowColor
. Больше не поддерживаются.Scene.getTransitions
переименована в Scene.getAnimations
.SensorCollection
переименована в SensorVolumeCollection
.ComplexConicSensorVolume
материал заменён на отдельные материалы для каждой поверхности: outerMaterial
, innerMaterial
и capMaterial
.TranslucentSensorVolumeMaterial
в ColorMaterial
.DistanceIntervalSensorVolumeMaterial
в DistanceIntervalMaterial
.TieDyeSensorVolumeMaterial
в TieDyeMaterial
.CheckerboardSensorVolumeMaterial
в CheckerboardMaterial
.PolkaDotSensorVolumeMaterial
в DotMaterial
.FacetSensorVolumeMaterial
в FacetMaterial
.BlobSensorVolumeMaterial
в BlobMaterial
.VerticalStripeMaterial
.HorizontalStripeMaterial
.DistanceIntervalMaterial
.Polygon.material
.ConicSensorVolume
добавлена поддержка угла поворота через новые свойства maximumClockAngle
и minimumClockAngle
.RectangularPyramidSensorVolume
.BillboardCollection
и LabelCollection
.b2 — 2011-12-01
modelMatrix
добавлен к примитивам для рендеринга в локальной системе координат. Пример полилинии см. в Sandbox.eastNorthUpToFixedFrame()
и northEastDownToFixedFrame()
добавлены к классу Ellipsoid
для создания локальных систем координат.CameraFlightController
добавлен для плавного масштабирования от одной точки к другой. Примеры новой камеры см. в Sandbox.Matrix2
, Matrix3
и Matrix4
.Scene
, который уменьшает объём кода, необходимого для использования Geoscope. Рекомендуется использовать его вместо явного вызова методов update()
и render()
для отдельных или составных примитивов. Существующему коду потребуются незначительные изменения:
Context.pick()
должны быть заменены на метод Scene.pick()
.Scene.getContext().createTextureAtlas()
.getPosition
/ setPosition
, были заменены свойствами, например, position.CompositePrimitive
, Polygon
и Polyline
getShow
/ setShow
на свойство show.Polyline
, Polygon
, BillboardCollection
и LabelCollection
getBufferUsage
/ setBufferUsage
на свойство bufferUsage.Ранее компоненты назывались r, g, b и a. Теперь они называются red (красный), green (зелёный), blue (синий) и alpha (альфа). Ранее диапазон каждого компонента был [0, 255]. Теперь диапазон равен [0, 1] с плавающей точкой. Например:
color : { r : 0, g : 255, b : 0, a : 255 }
становится:
color : { red : 0.0, green : 1.0, blue : 0.0, alpha : 1.0 }
Добавлен Shapes.computeCircleBoundary для вычисления окружностей. См. Sandbox.
Изменена функция конструктора EventHandler, чтобы она принимала холст Geoscope, что обеспечивает правильное положение мыши независимо от положения холста на странице. Код, который ранее выглядел так:
var handler = new Geoscope.EventHandler();
теперь выглядит так:
var handler = new Geoscope.EventHandler(canvas);
Context.Pick больше не требует зажима аргументов x и y. Код, который раньше выглядел так:
var pickedObject = context.pick(primitives, us, Math.max(x, 0.0),
Math.max(context.getCanvas().clientHeight - y, 0.0));
теперь может выглядеть так:
var pickedObject = context.pick(primitives, us, x, context.getCanvas().clientHeight - y);
Изменено Polyline.setWidth и Polyline.setOutlineWidth, чтобы ограничить ширину пределом реализации WebGL вместо того, чтобы вызывать исключение. Код, который ранее выглядел так:
var maxWidth = context.getMaximumAliasedLineWidth();
polyline.setWidth(Math.min(5, maxWidth));
polyline.setOutlineWidth(Math.min(10, maxWidth));
может теперь выглядеть так:
polyline.setWidth(5);
polyline.setOutlineWidth(10);
Улучшен Sandbox:
ИЗМЕНЕНИЕ: Функция-конструктор Context теперь принимает элемент вместо ID. Код, который ранее выглядел так:
var context = new Geoscope.Context("glCanvas");
var canvas = context.getCanvas();
должен теперь выглядеть так:
var canvas = document.getElementById("glCanvas");
var context = new Geoscope.Context(canvas);
См. пример Sandbox, чтобы узнать, как использовать новые метки и юлианскую дату.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )