<p align="center">
<img src="http://www.boswinner.com/Images/logo.png?t=20211119172929" width="50%" />
</p>

<!-- [![Build Status](https://travis-ci.com/CesiumGS/cesium.svg?branch=main)](http://bos.boswinner.com/) -->

[![npm](https://img.shields.io/npm/v/bosgeo-ui)](https://www.npmjs.com/package/bosgeo-ui)
[![Docs](https://img.shields.io/badge/docs-online-orange.svg)](http://prod-api.boswinner.com/bosgeo_js_api_v2/)

BOSGeo Viewer是 BOS 提供的一个 BIM+GIS 的三维空间可视化组件。在集成海量 BIM 模型、实景三维模型、遥感影像、地形和矢量数据等空间数据的基础上，提供一系列基于 BIM+GIS 的三维可视化场景查看和交互功能及相关的接口，包括三维地图视图控制、漫游、图层管理、BIM 模型数据搜索与空间定位、路径规划、测量等空间分析功能，实现地理空间的室内室外、地上地下一体化展示与管理。相比于 BOS3DViewer，BOSGeoViewer 由于能够承载海量 GIS 数据（倾斜摄影数据、矢量数据和栅格数据等），并提供了剖面分析、地形开挖、缓冲分析等三维 GIS 特色的空间分析功能，可以实现空间大场景至小场景的逐级细化管理，适合于大型园区、城区级或城市级等大范围 BIM+GIS 数据的承载与展示。

BOSGeo Viewer包含BOSGeo和BOSGeoUI两个顶级父类，其中BOSGeo类对应引擎库的内容，主要包含GeoMap、LayerManager、MapLayer、ModelLayer、ParticleLayer、Roam、Draw和GeoUtil等类；BOSGeoUI对应UI库的内容，目前主要实现了UI界面的配置。BOSGeo类是BOSGeoViewer的核心，除BOSGeoUI类外，所有类、对象全都是BOSGeo的子类。

*本NPM包为UI库，同时包含BOSGeo和BOSGeoUI类。*

[盈嘉互联 BOS 官网](http://bos.boswinner.com/)

### 开始

安装 [BOSGeo UI库 npm 包](https://www.npmjs.com/package/bosgeo-ui):

```sh
npm install bosgeo-ui
```
### 使用

```js
// webpack.config.js配置
const CopyWebpackPlugin = require("copy-webpack-plugin");

{
  plugins: [
    new CopyWebpackPlugin([
      { from: path.join("node_modules/bosgeo-ui/build", "/Assets"), to: "Assets" },
      {
        from: path.join("node_modules/bosgeo-ui/build", "/ThirdParty"),
        to: "ThirdParty",
      },
      {
        from: path.join("node_modules/bosgeo-ui/build", "/Widgets"),
        to: "Widgets",
      },
      {
        from: path.join("node_modules/bosgeo-ui/build", "/Workers"),
        to: "Workers",
      },
    ]),
  ];
}
```

```js
import {BOSGeo, BOSGeoUI} from "bosgeo-ui"; //引入BOSGeoViewer的两个核心对象
BOSGeo.setBOSGeoBaseUrl("http://localhost:8000/");//用于本地化部署时设置静态资源文件的根路径
let geoMap = new BOSGeo.GeoMap("bosgeoContainer"); //实例化GeoMap对象
//UI界面初始化
let geoUI = new BOSGeoUI({
    geomap: geoMap
});
```

### 案例

<p>
<a href="http://cim.boswinner.com"><img src="http://www.boswinner.com/Images/Upload/20211119/94a7bf3428c14cbcbec206ff94977a51.jpg" width="30%" /></a>&nbsp;
<br/>
<br/>
</p>

<h4><a href="http://prod-api.boswinner.com/bosgeo_demo">查看更多Demo</a></h4>

如果有问题，欢迎到 [知屋安砖](https://www.zhuanspace.com/)上交流。

<h4><a href="http://bosgeo.boswinner.com/">BOSGeo Viewer在线访问地址</a></h4>
