全能网站建设教程,企业网站seo贵不贵,早晨网站建设,lamp wordpress 404问题#xff1a;
1.同一个kmz数据同样的底图在QGIS上显示位置正常, 在网页中显示就偏移了一些
在qgis上的显示效果#xff0c;和在mars3d的显示效果#xff1a;数据明显存在偏移。 解决步骤#xff1a;
1.查看了kmz数据#xff0c;里面实际是tif图片数据#xff0c;估…问题
1.同一个kmz数据同样的底图在QGIS上显示位置正常, 在网页中显示就偏移了一些
在qgis上的显示效果和在mars3d的显示效果数据明显存在偏移。 解决步骤
1.查看了kmz数据里面实际是tif图片数据估计投影坐标有偏移造成的tif用标准的4326或3857坐标系尝试 2.
重新生成了数据为4326的但在示例中测试后还是有偏移。
示例的测试地址功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技
function onMounted(mapInstance) { mapInstance.setLayersOptions([{ name: HN, type: kml, // url:https://1111111111111com/file/demo-data/HNS4326.kmz, url:https://com/file/demo-data/HNS_3857.kmz, center: {lat:19.9,lng:110.5,alt:136098,heading:0,pitch:-90}, show: true, flyTo: true }])
} 3.最后定位到问题是cesium内部解析的无法干预最好是直接替换数据为3857坐标系尝试渲染。
备注说明1.该示例cesium内部是用RectangleEntity图片材质实现的
2.建议直接用ImageLayer来加载这个tif图片。
3.Mars3d关于ImageLayer的使用示例参考与api地址
功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技
ImageLayer - V3.6.15 - Mars3D API文档 function createGroundOverlay(state, rectangleGraphics, overlays) { const kmlDoc state.kmlDoc; const valueGetter state.valueGetter; const externalFileHandler state.externalFileHandler; const groundOverlay kmlDoc.createElement(GroundOverlay); // Set altitude mode const altitudeMode kmlDoc.createElement(altitudeMode); altitudeMode.appendChild( getAltitudeMode(state, rectangleGraphics.heightReference) ); groundOverlay.appendChild(altitudeMode); const height valueGetter.get(rectangleGraphics.height); if (defined(height)) { groundOverlay.appendChild( createBasicElementWithText(kmlDoc, altitude, height) ); } const rectangle valueGetter.get(rectangleGraphics.coordinates); const latLonBox kmlDoc.createElement(LatLonBox); latLonBox.appendChild( createBasicElementWithText( kmlDoc, north, CesiumMath.toDegrees(rectangle.north) ) ); latLonBox.appendChild( createBasicElementWithText( kmlDoc, south, CesiumMath.toDegrees(rectangle.south) ) ); latLonBox.appendChild( createBasicElementWithText( kmlDoc, east, CesiumMath.toDegrees(rectangle.east) ) ); latLonBox.appendChild( createBasicElementWithText( kmlDoc, west, CesiumMath.toDegrees(rectangle.west) ) ); groundOverlay.appendChild(latLonBox); // We should only end up here if we have an ImageMaterialProperty const material valueGetter.get(rectangleGraphics.material); const href externalFileHandler.texture(material.image); const icon kmlDoc.createElement(Icon); icon.appendChild(createBasicElementWithText(kmlDoc, href, href)); groundOverlay.appendChild(icon); const color material.color; if (defined(color)) { groundOverlay.appendChild( createBasicElementWithText(kmlDoc, color, colorToString(material.color)) ); } overlays.push(groundOverlay);
}