Commit 00c9e49d by wanghao

同步v3.4.5代码

parent e2e59507
/** /**
* Mars3D三维可视化平台 mars3d * Mars3D三维可视化平台 mars3d
* *
* 版本信息:v3.4.4 * 版本信息:v3.4.5
* 编译日期:2022-08-15 14:53:23 * 编译日期:2022-08-21 17:12:50
* 版权所有:Copyright by 火星科技 http://mars3d.cn * 版权所有:Copyright by 火星科技 http://mars3d.cn
* 使用单位:免费公开版 ,2022-06-01 * 使用单位:免费公开版 ,2022-06-01
*/ */
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
/** /**
* Mars3D三维可视化平台 mars3d * Mars3D三维可视化平台 mars3d
* *
* 版本信息:v3.4.4 * 版本信息:v3.4.5
* 编译日期:2022-08-15 14:53:23 * 编译日期:2022-08-21 17:12:50
* 版权所有:Copyright by 火星科技 http://mars3d.cn * 版权所有:Copyright by 火星科技 http://mars3d.cn
* 使用单位:免费公开版 ,2022-06-01 * 使用单位:免费公开版 ,2022-06-01
*/ */
...@@ -12891,7 +12891,7 @@ declare class BasePrimitive extends BaseGraphic { ...@@ -12891,7 +12891,7 @@ declare class BasePrimitive extends BaseGraphic {
*/ */
readonly uniforms: any | undefined; readonly uniforms: any | undefined;
/** /**
* 附加的label文本对象 * 附加的label文本对象(仅基础primitive支持,如Combine对象不支持)
*/ */
readonly label: Cesium.Label | any; readonly label: Cesium.Label | any;
/** /**
...@@ -12965,6 +12965,11 @@ declare class BasePrimitive extends BaseGraphic { ...@@ -12965,6 +12965,11 @@ declare class BasePrimitive extends BaseGraphic {
* @param options.position - 坐标位置 * @param options.position - 坐标位置
* @param options.style - 样式信息 * @param options.style - 样式信息
* @param [options.attr] - 附件的属性信息,可以任意附加属性,导出geojson或json时会自动处理导出。 * @param [options.attr] - 附件的属性信息,可以任意附加属性,导出geojson或json时会自动处理导出。
* @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时,在任何可用坐标之后一次请求值时要执行的推断类型,默认为最后一个坐标位置。
* @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时, 在任何可用坐标之前一次请求值时要执行的推断类型,默认为第一个坐标位置。
* @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时,是否进行贴模型。
* @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时,并clampToTileset:true时,多少帧计算一次贴模型高度
* @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时,并clampToTileset:true时,排除的不进行贴模型计算的模型对象,可以是: primitives, entities, 或 3D Tiles features
* @param [options.popup] - 绑定的popup弹窗值,也可以bindPopup方法绑定 * @param [options.popup] - 绑定的popup弹窗值,也可以bindPopup方法绑定
* @param [options.popupOptions] - popup弹窗时的配置参数,也支持如pointerEvents等{@link Popup}构造参数 * @param [options.popupOptions] - popup弹窗时的配置参数,也支持如pointerEvents等{@link Popup}构造参数
* @param [options.tooltip] - 绑定的tooltip弹窗值,也可以bindTooltip方法绑 * @param [options.tooltip] - 绑定的tooltip弹窗值,也可以bindTooltip方法绑
...@@ -12981,6 +12986,11 @@ declare class BillboardPrimitive extends BasePointPrimitive { ...@@ -12981,6 +12986,11 @@ declare class BillboardPrimitive extends BasePointPrimitive {
position: LngLatPoint | Cesium.Cartesian3 | number[]; position: LngLatPoint | Cesium.Cartesian3 | number[];
style: BillboardEntity.StyleOptions | any; style: BillboardEntity.StyleOptions | any;
attr?: any; attr?: any;
forwardExtrapolationType?: Cesium.ExtrapolationType;
backwardExtrapolationType?: Cesium.ExtrapolationType;
clampToTileset?: boolean;
frameRateHeight?: number;
objectsToExclude?: any;
popup?: string | any[] | ((...params: any[]) => any); popup?: string | any[] | ((...params: any[]) => any);
popupOptions?: Popup.StyleOptions | any; popupOptions?: Popup.StyleOptions | any;
tooltip?: string | any[] | ((...params: any[]) => any); tooltip?: string | any[] | ((...params: any[]) => any);
...@@ -14378,6 +14388,11 @@ declare namespace LabelPrimitive { ...@@ -14378,6 +14388,11 @@ declare namespace LabelPrimitive {
* @param options.position - 坐标位置 * @param options.position - 坐标位置
* @param options.style - 样式信息 * @param options.style - 样式信息
* @param [options.attr] - 附件的属性信息,可以任意附加属性,导出geojson或json时会自动处理导出。 * @param [options.attr] - 附件的属性信息,可以任意附加属性,导出geojson或json时会自动处理导出。
* @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时,在任何可用坐标之后一次请求值时要执行的推断类型,默认为最后一个坐标位置。
* @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时, 在任何可用坐标之前一次请求值时要执行的推断类型,默认为第一个坐标位置。
* @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时,是否进行贴模型。
* @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时,并clampToTileset:true时,多少帧计算一次贴模型高度
* @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时,并clampToTileset:true时,排除的不进行贴模型计算的模型对象,可以是: primitives, entities, 或 3D Tiles features
* @param [options.popup] - 绑定的popup弹窗值,也可以bindPopup方法绑定 * @param [options.popup] - 绑定的popup弹窗值,也可以bindPopup方法绑定
* @param [options.popupOptions] - popup弹窗时的配置参数,也支持如pointerEvents等{@link Popup}构造参数 * @param [options.popupOptions] - popup弹窗时的配置参数,也支持如pointerEvents等{@link Popup}构造参数
* @param [options.tooltip] - 绑定的tooltip弹窗值,也可以bindTooltip方法绑 * @param [options.tooltip] - 绑定的tooltip弹窗值,也可以bindTooltip方法绑
...@@ -14394,6 +14409,11 @@ declare class LabelPrimitive extends BasePointPrimitive { ...@@ -14394,6 +14409,11 @@ declare class LabelPrimitive extends BasePointPrimitive {
position: LngLatPoint | Cesium.Cartesian3 | number[]; position: LngLatPoint | Cesium.Cartesian3 | number[];
style: LabelPrimitive.StyleOptions | any; style: LabelPrimitive.StyleOptions | any;
attr?: any; attr?: any;
forwardExtrapolationType?: Cesium.ExtrapolationType;
backwardExtrapolationType?: Cesium.ExtrapolationType;
clampToTileset?: boolean;
frameRateHeight?: number;
objectsToExclude?: any;
popup?: string | any[] | ((...params: any[]) => any); popup?: string | any[] | ((...params: any[]) => any);
popupOptions?: Popup.StyleOptions | any; popupOptions?: Popup.StyleOptions | any;
tooltip?: string | any[] | ((...params: any[]) => any); tooltip?: string | any[] | ((...params: any[]) => any);
...@@ -14959,6 +14979,11 @@ declare namespace PointPrimitive { ...@@ -14959,6 +14979,11 @@ declare namespace PointPrimitive {
* @param options.style - 样式信息 * @param options.style - 样式信息
* @param [options.attr] - 附件的属性信息,可以任意附加属性,导出geojson或json时会自动处理导出。 * @param [options.attr] - 附件的属性信息,可以任意附加属性,导出geojson或json时会自动处理导出。
* @param [options.frameRate = 1] - 当postion为CallbackProperty时,多少帧获取一次数据。用于控制效率,如果卡顿就把该数值调大一些。 * @param [options.frameRate = 1] - 当postion为CallbackProperty时,多少帧获取一次数据。用于控制效率,如果卡顿就把该数值调大一些。
* @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时,在任何可用坐标之后一次请求值时要执行的推断类型,默认为最后一个坐标位置。
* @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时, 在任何可用坐标之前一次请求值时要执行的推断类型,默认为第一个坐标位置。
* @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时,是否进行贴模型。
* @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时,并clampToTileset:true时,多少帧计算一次贴模型高度
* @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时,并clampToTileset:true时,排除的不进行贴模型计算的模型对象,可以是: primitives, entities, 或 3D Tiles features
* @param [options.popup] - 绑定的popup弹窗值,也可以bindPopup方法绑定 * @param [options.popup] - 绑定的popup弹窗值,也可以bindPopup方法绑定
* @param [options.popupOptions] - popup弹窗时的配置参数,也支持如pointerEvents等{@link Popup}构造参数 * @param [options.popupOptions] - popup弹窗时的配置参数,也支持如pointerEvents等{@link Popup}构造参数
* @param [options.tooltip] - 绑定的tooltip弹窗值,也可以bindTooltip方法绑 * @param [options.tooltip] - 绑定的tooltip弹窗值,也可以bindTooltip方法绑
...@@ -14976,6 +15001,11 @@ declare class PointPrimitive extends BasePointPrimitive { ...@@ -14976,6 +15001,11 @@ declare class PointPrimitive extends BasePointPrimitive {
style: PointPrimitive.StyleOptions | any; style: PointPrimitive.StyleOptions | any;
attr?: any; attr?: any;
frameRate?: number; frameRate?: number;
forwardExtrapolationType?: Cesium.ExtrapolationType;
backwardExtrapolationType?: Cesium.ExtrapolationType;
clampToTileset?: boolean;
frameRateHeight?: number;
objectsToExclude?: any;
popup?: string | any[] | ((...params: any[]) => any); popup?: string | any[] | ((...params: any[]) => any);
popupOptions?: Popup.StyleOptions | any; popupOptions?: Popup.StyleOptions | any;
tooltip?: string | any[] | ((...params: any[]) => any); tooltip?: string | any[] | ((...params: any[]) => any);
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -126,20 +126,28 @@ ...@@ -126,20 +126,28 @@
latitude = Cesium.Math.toDegrees(latitude) latitude = Cesium.Math.toDegrees(latitude)
targetSources.forEach((s) => { targetSources.forEach((s) => {
queryResult.push({ let data = this.mapboxRenderer.queryRenderedFeatures({
data: this.mapboxRenderer.queryRenderedFeatures({
source: s, source: s,
renderedZoom: zoom, renderedZoom: zoom,
lng: longitude, lng: longitude,
lat: latitude, lat: latitude,
tileZ: zoom tileZ: zoom
}) })
})
for (let key in data) {
let item = data[key]
for (let index = 0; index < item.length; index++) {
const element = item[index]
element.layer = key
queryResult.push({ properties: element })
}
}
}) })
// release tile // release tile
renderRef.consumer.ctx = undefined renderRef.consumer.ctx = undefined
this.mapboxRenderer.releaseRender(renderRef) this.mapboxRenderer.releaseRender(renderRef)
return queryResult return queryResult
}) })
} }
......
...@@ -147,17 +147,8 @@ export function bindMapDemo() { ...@@ -147,17 +147,8 @@ export function bindMapDemo() {
{ {
text: "移动到此处", text: "移动到此处",
icon: "fa fa-send-o", icon: "fa fa-send-o",
show: function (e) { show: "flyToForContextmenuShow",
return Cesium.defined(e.cartesian) callback: "flyToForContextmenuClick" // 也支持“方法名称”方式(如config.json中配置时)
},
callback: (e) => {
const cameraDistance = Cesium.Cartesian3.distance(e.cartesian, map.camera.positionWC) * 0.1
map.flyToPoint(e.cartesian, {
radius: cameraDistance, // 距离目标点的距离
maximumHeight: map.camera.positionCartographic.height
})
}
} }
] ]
} }
...@@ -165,6 +156,19 @@ export function bindMapDemo() { ...@@ -165,6 +156,19 @@ export function bindMapDemo() {
map.bindContextMenu(mapContextmenuItems) map.bindContextMenu(mapContextmenuItems)
} }
// 演示右键菜单“方法名称”方式(如config.json中配置时)
window.flyToForContextmenuShow = function(event) {
return Cesium.defined(event.cartesian)
}
window.flyToForContextmenuClick = function(event) {
const cameraDistance = Cesium.Cartesian3.distance(event.cartesian, map.camera.positionWC) * 0.1
map.flyToPoint(event.cartesian, {
radius: cameraDistance, // 距离目标点的距离
maximumHeight: map.camera.positionCartographic.height
})
}
// 解除Map已绑定的右键菜单 // 解除Map已绑定的右键菜单
export function unBindMapDemo() { export function unBindMapDemo() {
map.unbindContextMenu() map.unbindContextMenu()
......
...@@ -23,7 +23,7 @@ export function onMounted(mapInstance) { ...@@ -23,7 +23,7 @@ export function onMounted(mapInstance) {
`(1) 无数据区域mapbox-gl.js解析失败F12会有错误提示,但不影响使用。(2) 如果部分PBF数据未显示,需要扩展开发对应解析style代码。` `(1) 无数据区域mapbox-gl.js解析失败F12会有错误提示,但不影响使用。(2) 如果部分PBF数据未显示,需要扩展开发对应解析style代码。`
) )
addPbfLayer() addPbfLayer2()
} }
/** /**
...@@ -37,9 +37,15 @@ export function onUnmounted() { ...@@ -37,9 +37,15 @@ export function onUnmounted() {
function addPbfLayer() { function addPbfLayer() {
// 在 lib\mars3d\thirdParty\pbf-mapbox\PbfLayer.js 中定义的 // 在 lib\mars3d\thirdParty\pbf-mapbox\PbfLayer.js 中定义的
const pbfLayer = new mars3d.layer.PbfLayer({ const pbfLayer = new mars3d.layer.PbfLayer({
url: "https://api.maptiler.com/maps/basic/style.json?key=pSHUA9sSkNny3iqoWG4P" url: "https://api.maptiler.com/maps/basic/style.json?key=pSHUA9sSkNny3iqoWG4P",
popup: "all"
}) })
map.addLayer(pbfLayer) map.addLayer(pbfLayer)
// 单击事件
pbfLayer.on(mars3d.EventType.click, function (event) {
console.log("单击了矢量数据,共" + event.features.length + "条", event)
})
} }
function addPbfLayer2() { function addPbfLayer2() {
...@@ -481,7 +487,13 @@ function addPbfLayer2() { ...@@ -481,7 +487,13 @@ function addPbfLayer2() {
// 在 lib\mars3d\thirdParty\pbf-mapbox\PbfLayer.js 中定义的 // 在 lib\mars3d\thirdParty\pbf-mapbox\PbfLayer.js 中定义的
const pbfLayer = new mars3d.layer.PbfLayer({ const pbfLayer = new mars3d.layer.PbfLayer({
style: exampleStyle style: exampleStyle,
popup: "all"
}) })
map.addLayer(pbfLayer) map.addLayer(pbfLayer)
// 单击事件
pbfLayer.on(mars3d.EventType.click, function (event) {
console.log("单击了矢量数据,共" + event.features.length + "条", event)
})
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论