建议将配置文件弄好后,直接看threejs文档,需要中文字体包,window用户直接找c盘,mac用户跟window用户要一下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>MapVGL</title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<style>
html,
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
#map_container {
width: 100%;
height: 100%;
margin: 0;
}
</style>
<script src="//api.map.baidu.com/api?v=1.0&type=webgl&ak=<输入你自己的ak去>"></script>
<script src="//mapv.baidu.com/build/mapv.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/110/three.min.js"></script>
<!-- <script src="./glft.js"></script> -->
<script src="./common.js"></script>
<script src="https://code.bdstatic.com/npm/mapvgl@1.0.0-beta.129/dist/mapvgl.min.js"></script>
<script type="text/javascript" src="https://code.bdstatic.com/npm/mapvgl@1.0.0-beta.129/dist/mapvgl.threelayers.min.js"></script></head>
<body>
<div id="map_container"></div>
<script>
/* global BMapGL */
/* global mapv */
/* global mapvgl */
/* global initMap */
var map = initMap({
tilt: 80,
heading: -45.3,
center: [120.366874,36.068077],
zoom: 17
});
var view = new mapvgl.View({
map: map
});
view.startAnimation();
fetch('./bd09data.json').then(function (rs) {
return rs.json();
}).then(function (rs) {
console.log(rs)
var polygons = rs;
var shaperLayer = new mapvgl.ShapeLayer({
texture: './wall2.png',
isTextureFull: true,
textureScale: 0.05,
topColor: 'rgba(39, 50, 85, 0.5)',
opacity: 1.0,
zIndex: 999
});
// var shaperLayer = new mapvgl.ShapeLayer({
// color: 'rgba(45, 75, 102, 1)',
// style: 'windowAnimation',
// opacity: 1
// });
// shaperLayer.setZIndex(99)
view.addLayer(shaperLayer);
shaperLayer.setData(polygons);
});
var threeLayer = new mapvgl.ThreeLayer();
view.addLayer(threeLayer);
var projection = mapvgl.MercatorProjection;
var point = projection.convertLL2MC(new BMapGL.Point(120.366874,36.068077));
var point1 = projection.convertLL2MC(new BMapGL.Point(120.366074,36.068077));
map.enableKeyboard();
map.enableScrollWheelZoom();
map.enableInertialDragging();
map.enableContinuousZoom();
var geometry = new THREE.ConeGeometry(40 , 100, 8, 1, false)
var material = new THREE.MeshBasicMaterial( { color: 0xff0000, flatShading: false, wireframe:false})
var cube = new THREE.Mesh(geometry, material);
cube.rotateX(Math.PI /2 *3)
cube.position.x = point.lng;
cube.position.y = point.lat;
cube.position.z = 150;
threeLayer.add(cube);
var loader = new THREE.FontLoader();
loader.load( 'font/STXihei_Regular.json', function ( font ) {
var textgeometry = new THREE.TextBufferGeometry( '你好我是文字', {
font: font,
size: 40,
height: 5,
curveSegments: 12,
bevelEnabled: false,
bevelThickness: 10,
bevelSize: 8,
bevelSegments: 5
});
var material1 = new THREE.MeshBasicMaterial( { color: 0xffff00, flatShading: false, wireframe:false})
var cube1 = new THREE.Mesh(textgeometry, material1);
cube1.rotateX(Math.PI /2 )
cube1.position.x = point1.lng;
cube1.position.y = point1.lat;
cube1.position.z = 240;
threeLayer.add(cube1);
console.log(cube1)
} );
fetch('./linstr.json').then(function (rs) {
return rs.json();
}).then(function (csvstr) {
console.log('csvstr', csvstr)
// var dataSet = mapv.csv.getDataSet(csvstr);
// var data = dataSet.get();
var linelayer = new mapvgl.LineTripLayer({
color: 'rgba(130, 113, 67, 0.1)',
step: 0.3,
trailLength: 2000,
startTime: 0,
data: csvstr
});
view.addLayer(linelayer);
});
// linstr
// const buildloader = new THREE.GLTFLoader();
// var buildlayer = buildloader.load( './AM203_31.gltf', function ( gltf ) {
// var cube2 = new THREE.Mesh(gltf, material1);
// // cube1.rotateX(Math.PI /2 )
// cube2.position.x = point1.lng;
// cube2.position.y = point1.lat;
// cube2.position.z = 0;
// threeLayer.add(cube2);
// // scene.add( gltf.scene );
// }, undefined, function ( error ) {
// console.error( error );
// } );
</script>
</body>
</html>
</body>
</html>