好的 谢谢您的反馈。
好的 谢谢您的反馈。
研究的也不是很深,尝试着看剖析问题看看,有翻了之前的文章看了下:
Fabric 材质 上
Fabric 材质 下
本来想尝试看看 repeat的回调的函数,结果发现没有好的解决方案。
只能尝试更改默认的着色器代码:
let appear = new Cesium.MaterialAppearance({
flat :true ,
material: new Cesium.Material({
translucent:false,
fabric : {
type :`Image`,
uniforms : {
image:`./static/images/symbol/0301.png`
}
},
}),
vertexShaderSource://重点更改顶点着色器
`
// GLSL 300 语法,顶点着色器
in vec3 position3DHigh;
in vec3 position3DLow;
in vec3 normal;
in vec2 st;
in float batchId;
out vec3 v_positionEC;
out vec3 v_normalEC;
out vec2 v_st;
void main() {
vec4 p = czm_computePosition();
v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
v_normalEC = czm_normal * normal; // normal in eye coordinates
v_st = st;
gl_Position = czm_modelViewProjectionRelativeToEye * p;
}
`
});
//appear.fragmentShaderSource 片元着色器
//appear.vertexShaderSource 顶点着色器
let primitive = new Cesium.Primitive({
geometryInstances: instances,
appearance: appear
});
下面是说明:
不好意思,不清楚你是想用cesium 还是想用mapv
点坐标效果和线效果 都是基于cesium的规范要求 定制化+着色器写的。详情见项目 ts源码
能否有职位和公司简介,联系方式
方便开发者了解详情,好让他们联系到您
谢谢😃
从您的代码看,应该是平移之前缺少了 获取模型 - 中心点的正东正北,和地表法线的方向的过度参数
Cesium.Transforms.eastNorthUpToFixedFrame(center);
这段时间忙,请参考这份文章和源码。 后期我会整合到我的项目里。
文章:Cesium智慧城市特效
源码地址:
https://github.com/liaoqinwei/cesium-effects
看了下,目前百度地图的个性化地图编辑器已经升级了,不能用之前csdn的提供的方法了https://blog.csdn.net/qq_27816785/article/details/110920672
其瓦片数据加密了
地图上的标识信息也隔离开 baidu的JSAPI自行处理了
故目前没有现成的方法,追踪此问题,有解决方案后再更新此贴吧
昨天和冰哥简单聊到了这个,问题解决的过程:
1、mac电脑上,chrome和Firefox浏览器都存在这个问题,而自带的safari浏览器不存在这个问题
2、其实显示的 是截取的中间一部分:
3、判断是,不同环境的不同浏览器 对应的 gl_PointSize 最大值不一样导致的
4、于是把片源着色器进行了如下缩放,显示正常了
#ifdef GL_ES
precision mediump float;
#endif
uniform vec2 u_resolution;
void main(){
vec2 p = (gl_FragCoord.xy * 2.0 - u_resolution) / min(u_resolution.x, u_resolution.y)*0.5;
vec3 color1=vec3(0.);
vec3 color2=vec3(0.);
vec3 color3=vec3(0.);
if(distance(vec2(0.,0.02),vec2(p.xy))<=.04)
{
color1=vec3(.0,.0,1.);
}
if(distance(vec2(-.02,-.02),vec2(p.xy))<=.04)
{
color2=vec3(1.,.0,0.);
}
if(distance(vec2(.02,-.02),vec2(p.xy))<=.04)
{
color3=vec3(.0,1.,0.);
}
vec3 color=vec3(0.,0.,0.)+color1 + color2 + color3;
gl_FragColor=vec4(color,1.);
}
没明白 导入不能解压是什么意思
下面有使用方法
使用方法:
一、首先安装fastadmin 「1.2.1.20210730_full」完整版:https://jdvop.oss-cn-qingdao.aliyuncs.com/1.2.1.20210730_full.zip 其他最新的版本,因为版权原因,不给离线安装插件了。
然后安装fastadmin这个平台:
https://www.fastadmin.net/video.html
注意public运行目录 以及 thinkphp的伪静态配置
二、下载右侧编译好的 发行版 文件 .zip
1、修改上传文件的大小限制:
修改文件:
/application/extra/upload.php
20行:
'maxsize' => '20mb',
2、application/config.php 中
unknownsources 改为 true
debug 改为 true
trace 改为 true
然后请设置清空前后台缓存
3、进入你刚部署的fastadmin后台,选择插件管理、离线安装,选择这个zip文件
4、修改文件
addons/cesiummapv/vue3-typescript/.env.production
VUE_APP_API_URL = 'http://map.217dan.com/addons/cesiummapv'
其中的 map.217dan.com 部分 改成你的网址
5、npm install
npm run build
享用吧
你直接复制肯定不行的
请问您是具体哪步出的问题?
简略回答一下哈
1、借助绘图控件完成鼠标绘制路线,推荐类似这种CesiumDrawHelper
2、获得点的集合后,
// 设置起始时间
const start = Cesium.JulianDate.fromDate(new Date(2022, 4, 26, 16))
const stop = Cesium.JulianDate.addSeconds(start, flyPath.length, new Cesium.JulianDate())
// 计算飞行的path
function computeFlightPath() {
const property = new Cesium.SampledPositionProperty()
for (let i = 0; i < flyPath.length; i++) {
const time = Cesium.JulianDate.addSeconds(start, i, new Cesium.JulianDate())
const position = Cesium.Cartesian3.fromDegrees(
flyPath[i][0],
flyPath[i][1],
flyPath[i][2]
)
property.addSample(time, position)
}
return property
}
// 之后增加飞机模型
const airPlaneEntity = viewer.entities.add({
id: id,
availability: new Cesium.TimeIntervalCollection([
new Cesium.TimeInterval({
start: start,
stop: stop
})
]),
position: position,
orientation: new Cesium.VelocityOrientationProperty(position),
model: {
uri: uri,
minimumPixelSize: 64,
maximumScale: 10
}
})
以上为部分精简代码,可以参考完成。
自己对threeJS不是很专业,就不班门弄斧了,抛砖迎玉,给一个demo例子,仅供参考。 至于地图的加载和坐标的匹配,甚至跟随放大缩小,动态改变热力图的解析度,还请threeJS大佬来完善.
代码具体地址是:http://www.icegl.cn/addons/cms/archives/showcode?id=148
这个问题比较笼统,涉及的内容其实挺多。
我简单说一下:
1、首先是cesium支持的地图瓦片的类型其实很多,详见API:https://cesium.com/learn/cesiumjs/ref-doc/ImageryProvider.html
2、关于地图瓦片的发布:可以使用ArcGIS Manager来发布地图服务(自行制作地图瓦片),也可以使用在线免费的地图接口【Google地图、OpenStreetMap、Mapbox等】,或者把底图切片通过普通的web服务(nginx/apache/tomcat)发布出来
3、通过我开源项目后台的配置直接编辑,或者通过我前台对应的代码,new Cesium.SingleTileImageryProvider,然后add到场景中,注意顺序,最后加入的会在最上层显示在最上面,或者最后设置地图层级
4、关于只使用一部分的区域,你可以在地图发布的时候,限制经纬度范围。也可以在设置Cesium.ImageryProvider的rectangle参数来控制范围
谢谢您的反馈,我刚看了下,不知道怎么被加了两层,我去掉了卫星这一层的图层覆盖。
后台都可以直接配置,演示使用的是高德的公开地图,一般不会挂,你浏览器清空缓存试试
问 文档中有一处地方的字写错了