mars3D使用
- 一、mars3D中使用 geocoder 进行 POI 查询
 - 二、限定范围
 - 1.初始化时渲染
 - 2.重新渲染
 
- 总结
 
一、mars3D中使用 geocoder 进行 POI 查询
在json文件或者自己的mapOptions中配置token
 
 "token":{
      "tianditu":"e5c3984ced09bc1f55e8e1107fdc5a6b",
      "baidu":"jTqhUqeeRirqd8musUiYmthqdHDHsiB2",
      "gaode":"ee24b622294b5bc659fb92fe81084776",
      "ion":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI2NjkxN2Y5Ni0wZjgyLTQyZDEtODEzNS0zYTlkN2UwMmU3OTciLCJpZCI6NTM1NDIsImlhdCI6MTYxOTIzMDkzMH0.S3x2FMdIx98KuCq8vN_gkC_PArveXJ5bPBNZ3CEYgtc",
      "mapbox":"pk.eyJ1IjoiY25zdW55b3VyIiwiYSI6ImNsMmN5Y2ppaDB0ZGYzam8yZmF2MjVqb3cifQ.FYxirkiZsriqaFw_x0IyAw",
      "bing":"Am5SdKm6pNdkP1P5zuUOMZwleCHeA7GD5vuQgZ3xBUbEMBeQ5cQ1WN4B8xqqV1Vt"
    }
 
自己部署代理服务
 github地址 https://github.com/muyao1987/web-proxy
 
 启动后
 
 就可以直接调用 把key换成自己的
 例如
 
 
二、限定范围

1.初始化时渲染
 // 限制视角范围
    cameraHistory = new mars3d.thing.CameraHistory({
        limit: {
            // 限定视角范围
            position: Cesium.Cartesian3.fromDegrees(119.332936, 26.056425, 0),
            radius: 500,// 范围半径
            debugExtent: true // 是否开启限定范围
        },
        maxCacheCount: 999  //最大缓存数量
    })
    map.addThing(cameraHistory)
    cameraHistory.on(mars3d.EventType.change, function (event) {
        // 触发自定义事件
        const count = event.count
        eventTarget.fire("changeCamera", { count })
    })
 
2.重新渲染
// 是否开启限定范围
export function chkUnderground(val, limit) {
    // cameraHistory.debugExtent = val
    // cameraHistory.options.limit = null
    // if (val) cameraHistory.setOptions({
    //     limit: limit || null,  // 传入的 limit 或 null
    //     debugExtent: true // 是否开启限定范围
    // })
    if (cameraHistory) {
        cameraHistory.destroy();
    }
    cameraHistory = new mars3d.thing.CameraHistory({
        limit: val ? limit : null,  // 传入的 limit 或 null
        debugExtent: val,           // 是否开启限定范围
        maxCacheCount: 999          // 最大缓存数量
    });
    map.addThing(cameraHistory)
    cameraHistory.on(mars3d.EventType.change, function (event) {
        // 触发自定义事件
        const count = event.count
        eventTarget.fire("changeCamera", { count })
    })
}
 



















