瀏覽代碼

代码提交

master
pengpeng.zhai 2 年之前
父節點
當前提交
3d8e4ac4ac
共有 100 個檔案被更改,包括 784 行新增1 行删除
  1. 3
    0
      .babelrc
  2. 40
    0
      .eslintrc.json
  3. 105
    0
      .gitignore
  4. 12
    0
      .idea/chartDp.iml
  5. 5
    0
      .idea/codeStyles/Project.xml
  6. 5
    0
      .idea/codeStyles/codeStyleConfig.xml
  7. 4
    0
      .idea/encodings.xml
  8. 6
    0
      .idea/inspectionProfiles/Project_Default.xml
  9. 6
    0
      .idea/misc.xml
  10. 8
    0
      .idea/modules.xml
  11. 6
    0
      .idea/vcs.xml
  12. 37
    0
      .project
  13. 83
    1
      README.md
  14. 347
    0
      config/config.js
  15. 28
    0
      config/pathVars.js
  16. 12
    0
      config/webpack.dev.config.js
  17. 12
    0
      config/webpack.dist.config.js
  18. 51
    0
      config/webpack.dll.config.js
  19. 二進制
      dev/static/GisFrame/beijing/building/东城区_百度建筑.dbf
  20. 1
    0
      dev/static/GisFrame/beijing/building/东城区_百度建筑.prj
  21. 二進制
      dev/static/GisFrame/beijing/building/东城区_百度建筑.sbn
  22. 二進制
      dev/static/GisFrame/beijing/building/东城区_百度建筑.sbx
  23. 二進制
      dev/static/GisFrame/beijing/building/东城区_百度建筑.shp
  24. 二進制
      dev/static/GisFrame/beijing/building/东城区_百度建筑.shx
  25. 二進制
      dev/static/GisFrame/beijing/building/丰台区_百度建筑.dbf
  26. 1
    0
      dev/static/GisFrame/beijing/building/丰台区_百度建筑.prj
  27. 二進制
      dev/static/GisFrame/beijing/building/丰台区_百度建筑.sbn
  28. 二進制
      dev/static/GisFrame/beijing/building/丰台区_百度建筑.sbx
  29. 二進制
      dev/static/GisFrame/beijing/building/丰台区_百度建筑.shp
  30. 二進制
      dev/static/GisFrame/beijing/building/丰台区_百度建筑.shx
  31. 二進制
      dev/static/GisFrame/beijing/building/大兴区_百度建筑.dbf
  32. 1
    0
      dev/static/GisFrame/beijing/building/大兴区_百度建筑.prj
  33. 二進制
      dev/static/GisFrame/beijing/building/大兴区_百度建筑.sbn
  34. 二進制
      dev/static/GisFrame/beijing/building/大兴区_百度建筑.sbx
  35. 二進制
      dev/static/GisFrame/beijing/building/大兴区_百度建筑.shp
  36. 二進制
      dev/static/GisFrame/beijing/building/大兴区_百度建筑.shx
  37. 二進制
      dev/static/GisFrame/beijing/building/密云区_百度建筑.dbf
  38. 1
    0
      dev/static/GisFrame/beijing/building/密云区_百度建筑.prj
  39. 二進制
      dev/static/GisFrame/beijing/building/密云区_百度建筑.sbn
  40. 二進制
      dev/static/GisFrame/beijing/building/密云区_百度建筑.sbx
  41. 二進制
      dev/static/GisFrame/beijing/building/密云区_百度建筑.shp
  42. 二進制
      dev/static/GisFrame/beijing/building/密云区_百度建筑.shx
  43. 二進制
      dev/static/GisFrame/beijing/building/平谷区_百度建筑.dbf
  44. 1
    0
      dev/static/GisFrame/beijing/building/平谷区_百度建筑.prj
  45. 二進制
      dev/static/GisFrame/beijing/building/平谷区_百度建筑.sbn
  46. 二進制
      dev/static/GisFrame/beijing/building/平谷区_百度建筑.sbx
  47. 二進制
      dev/static/GisFrame/beijing/building/平谷区_百度建筑.shp
  48. 二進制
      dev/static/GisFrame/beijing/building/平谷区_百度建筑.shx
  49. 二進制
      dev/static/GisFrame/beijing/building/延庆区_百度建筑.dbf
  50. 1
    0
      dev/static/GisFrame/beijing/building/延庆区_百度建筑.prj
  51. 二進制
      dev/static/GisFrame/beijing/building/延庆区_百度建筑.sbn
  52. 二進制
      dev/static/GisFrame/beijing/building/延庆区_百度建筑.sbx
  53. 二進制
      dev/static/GisFrame/beijing/building/延庆区_百度建筑.shp
  54. 二進制
      dev/static/GisFrame/beijing/building/延庆区_百度建筑.shx
  55. 二進制
      dev/static/GisFrame/beijing/building/怀柔区_百度建筑.dbf
  56. 1
    0
      dev/static/GisFrame/beijing/building/怀柔区_百度建筑.prj
  57. 二進制
      dev/static/GisFrame/beijing/building/怀柔区_百度建筑.sbn
  58. 二進制
      dev/static/GisFrame/beijing/building/怀柔区_百度建筑.sbx
  59. 二進制
      dev/static/GisFrame/beijing/building/怀柔区_百度建筑.shp
  60. 二進制
      dev/static/GisFrame/beijing/building/怀柔区_百度建筑.shx
  61. 二進制
      dev/static/GisFrame/beijing/building/昌平区_百度建筑.dbf
  62. 1
    0
      dev/static/GisFrame/beijing/building/昌平区_百度建筑.prj
  63. 二進制
      dev/static/GisFrame/beijing/building/昌平区_百度建筑.sbn
  64. 二進制
      dev/static/GisFrame/beijing/building/昌平区_百度建筑.sbx
  65. 二進制
      dev/static/GisFrame/beijing/building/昌平区_百度建筑.shp
  66. 二進制
      dev/static/GisFrame/beijing/building/昌平区_百度建筑.shx
  67. 二進制
      dev/static/GisFrame/beijing/building/朝阳区_百度建筑.dbf
  68. 1
    0
      dev/static/GisFrame/beijing/building/朝阳区_百度建筑.prj
  69. 二進制
      dev/static/GisFrame/beijing/building/朝阳区_百度建筑.sbn
  70. 二進制
      dev/static/GisFrame/beijing/building/朝阳区_百度建筑.sbx
  71. 二進制
      dev/static/GisFrame/beijing/building/朝阳区_百度建筑.shp
  72. 二進制
      dev/static/GisFrame/beijing/building/朝阳区_百度建筑.shx
  73. 二進制
      dev/static/GisFrame/beijing/building/海淀区_百度建筑.dbf
  74. 1
    0
      dev/static/GisFrame/beijing/building/海淀区_百度建筑.prj
  75. 二進制
      dev/static/GisFrame/beijing/building/海淀区_百度建筑.sbn
  76. 二進制
      dev/static/GisFrame/beijing/building/海淀区_百度建筑.sbx
  77. 二進制
      dev/static/GisFrame/beijing/building/海淀区_百度建筑.shp
  78. 二進制
      dev/static/GisFrame/beijing/building/海淀区_百度建筑.shx
  79. 二進制
      dev/static/GisFrame/beijing/building/矢量下载_百度建筑.dbf
  80. 1
    0
      dev/static/GisFrame/beijing/building/矢量下载_百度建筑.prj
  81. 二進制
      dev/static/GisFrame/beijing/building/矢量下载_百度建筑.sbn
  82. 二進制
      dev/static/GisFrame/beijing/building/矢量下载_百度建筑.sbx
  83. 二進制
      dev/static/GisFrame/beijing/building/矢量下载_百度建筑.shp
  84. 二進制
      dev/static/GisFrame/beijing/building/矢量下载_百度建筑.shx
  85. 二進制
      dev/static/GisFrame/beijing/building/石景山区_百度建筑.dbf
  86. 1
    0
      dev/static/GisFrame/beijing/building/石景山区_百度建筑.prj
  87. 二進制
      dev/static/GisFrame/beijing/building/石景山区_百度建筑.sbn
  88. 二進制
      dev/static/GisFrame/beijing/building/石景山区_百度建筑.sbx
  89. 二進制
      dev/static/GisFrame/beijing/building/石景山区_百度建筑.shp
  90. 二進制
      dev/static/GisFrame/beijing/building/石景山区_百度建筑.shx
  91. 二進制
      dev/static/GisFrame/beijing/building/西城区_百度建筑.dbf
  92. 1
    0
      dev/static/GisFrame/beijing/building/西城区_百度建筑.prj
  93. 二進制
      dev/static/GisFrame/beijing/building/西城区_百度建筑.sbn
  94. 二進制
      dev/static/GisFrame/beijing/building/西城区_百度建筑.sbx
  95. 二進制
      dev/static/GisFrame/beijing/building/西城区_百度建筑.shp
  96. 二進制
      dev/static/GisFrame/beijing/building/西城区_百度建筑.shx
  97. 二進制
      dev/static/GisFrame/beijing/building/通州区_百度建筑.dbf
  98. 1
    0
      dev/static/GisFrame/beijing/building/通州区_百度建筑.prj
  99. 二進制
      dev/static/GisFrame/beijing/building/通州区_百度建筑.sbn
  100. 0
    0
      dev/static/GisFrame/beijing/building/通州区_百度建筑.sbx

+ 3
- 0
.babelrc 查看文件

@@ -0,0 +1,3 @@
1
+{
2
+  "presets": ["env","stage-0"]
3
+}

+ 40
- 0
.eslintrc.json 查看文件

@@ -0,0 +1,40 @@
1
+/*json 中也让写一下注释吧!!!*/
2
+{
3
+  "env": {
4
+    "browser": true,
5
+    "commonjs": true,
6
+    "es6": true
7
+  },
8
+  "extends": "eslint:recommended",
9
+  "parserOptions": {
10
+    "ecmaVersion": 2015,
11
+    "sourceType": "module"
12
+  },
13
+  "rules": {
14
+    "linebreak-style": 0,
15
+
16
+    //允许使用console
17
+    "no-console":2,
18
+
19
+    //单个文件不能超过500行
20
+    "max-lines": [1, 500],
21
+
22
+    //强制在代码块中使用一致的大括号风格
23
+    "brace-style": 2,
24
+
25
+    //禁止在不需要分行的时候使用了分行
26
+    "no-unexpected-multiline": 2,
27
+
28
+    //不要把空格和tab混用
29
+    "no-mixed-spaces-and-tabs": 2,
30
+
31
+    //函数参数禁止重名
32
+    "no-dupe-args": 2,
33
+
34
+    //class中的成员禁止重名
35
+    "no-dupe-class-members": 2,
36
+
37
+    //在对象字面量中,禁止使用重复的key
38
+    "no-dupe-keys": 2
39
+  }
40
+}

+ 105
- 0
.gitignore 查看文件

@@ -0,0 +1,105 @@
1
+### macOS template
2
+# General
3
+.DS_Store
4
+.AppleDouble
5
+.LSOverride
6
+
7
+# Icon must end with two \r
8
+Icon
9
+
10
+# Thumbnails
11
+._*
12
+
13
+# Files that might appear in the root of a volume
14
+.DocumentRevisions-V100
15
+.fseventsd
16
+.Spotlight-V100
17
+.TemporaryItems
18
+.Trashes
19
+.VolumeIcon.icns
20
+.com.apple.timemachine.donotpresent
21
+
22
+# Directories potentially created on remote AFP share
23
+.AppleDB
24
+.AppleDesktop
25
+Network Trash Folder
26
+Temporary Items
27
+.apdisk
28
+### Windows template
29
+# Windows thumbnail cache files
30
+Thumbs.db
31
+ehthumbs.db
32
+ehthumbs_vista.db
33
+
34
+# Dump file
35
+*.stackdump
36
+
37
+# Folder config file
38
+Desktop.ini
39
+
40
+# Recycle Bin used on file shares
41
+$RECYCLE.BIN/
42
+
43
+# Windows Installer files
44
+*.cab
45
+*.msi
46
+*.msm
47
+*.msp
48
+
49
+# Windows shortcuts
50
+*.lnk
51
+
52
+### JetBrains template
53
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
54
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
55
+
56
+# User-specific stuff:
57
+.idea/**/workspace.xml
58
+.idea/**/tasks.xml
59
+.idea/dictionaries
60
+
61
+# Sensitive or high-churn files:
62
+.idea/**/dataSources/
63
+.idea/**/dataSources.ids
64
+.idea/**/dataSources.xml
65
+.idea/**/dataSources.local.xml
66
+.idea/**/sqlDataSources.xml
67
+.idea/**/dynamic.xml
68
+.idea/**/uiDesigner.xml
69
+
70
+# Gradle:
71
+.idea/**/gradle.xml
72
+.idea/**/libraries
73
+
74
+# CMake
75
+cmake-build-debug/
76
+
77
+# Mongo Explorer plugin:
78
+.idea/**/mongoSettings.xml
79
+
80
+## File-based project format:
81
+*.iws
82
+
83
+## Plugin-specific files:
84
+
85
+# IntelliJ
86
+out/
87
+
88
+# mpeltonen/sbt-idea plugin
89
+.idea_modules/
90
+
91
+# JIRA plugin
92
+atlassian-ide-plugin.xml
93
+
94
+# Cursive Clojure plugin
95
+.idea/replstate.xml
96
+
97
+# Crashlytics plugin (for Android Studio and IntelliJ)
98
+com_crashlytics_export_strings.xml
99
+crashlytics.properties
100
+crashlytics-build.properties
101
+fabric.properties
102
+
103
+/node_modules/
104
+/dist/
105
+/dll/

+ 12
- 0
.idea/chartDp.iml 查看文件

@@ -0,0 +1,12 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module type="WEB_MODULE" version="4">
3
+  <component name="NewModuleRootManager">
4
+    <content url="file://$MODULE_DIR$">
5
+      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
+      <excludeFolder url="file://$MODULE_DIR$/temp" />
7
+      <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+    </content>
9
+    <orderEntry type="inheritedJdk" />
10
+    <orderEntry type="sourceFolder" forTests="false" />
11
+  </component>
12
+</module>

+ 5
- 0
.idea/codeStyles/Project.xml 查看文件

@@ -0,0 +1,5 @@
1
+<component name="ProjectCodeStyleConfiguration">
2
+  <code_scheme name="Project" version="173">
3
+    <option name="LINE_SEPARATOR" value="&#10;" />
4
+  </code_scheme>
5
+</component>

+ 5
- 0
.idea/codeStyles/codeStyleConfig.xml 查看文件

@@ -0,0 +1,5 @@
1
+<component name="ProjectCodeStyleConfiguration">
2
+  <state>
3
+    <option name="USE_PER_PROJECT_SETTINGS" value="true" />
4
+  </state>
5
+</component>

+ 4
- 0
.idea/encodings.xml 查看文件

@@ -0,0 +1,4 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="Encoding" addBOMForNewFiles="with NO BOM" />
4
+</project>

+ 6
- 0
.idea/inspectionProfiles/Project_Default.xml 查看文件

@@ -0,0 +1,6 @@
1
+<component name="InspectionProjectProfileManager">
2
+  <profile version="1.0">
3
+    <option name="myName" value="Project Default" />
4
+    <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+  </profile>
6
+</component>

+ 6
- 0
.idea/misc.xml 查看文件

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="JavaScriptSettings">
4
+    <option name="languageLevel" value="ES6" />
5
+  </component>
6
+</project>

+ 8
- 0
.idea/modules.xml 查看文件

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/.idea/chartDp.iml" filepath="$PROJECT_DIR$/.idea/chartDp.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 6
- 0
.idea/vcs.xml 查看文件

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+  </component>
6
+</project>

+ 37
- 0
.project 查看文件

@@ -0,0 +1,37 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<projectDescription>
3
+	<name>chartDp</name>
4
+	<comment></comment>
5
+	<projects>
6
+	</projects>
7
+	<buildSpec>
8
+		<buildCommand>
9
+			<name>com.aptana.ide.core.unifiedBuilder</name>
10
+			<arguments>
11
+			</arguments>
12
+		</buildCommand>
13
+	</buildSpec>
14
+	<natures>
15
+		<nature>com.aptana.projects.webnature</nature>
16
+	</natures>
17
+	<filteredResources>
18
+		<filter>
19
+			<id>1544687053343</id>
20
+			<name></name>
21
+			<type>26</type>
22
+			<matcher>
23
+				<id>org.eclipse.ui.ide.multiFilter</id>
24
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
25
+			</matcher>
26
+		</filter>
27
+		<filter>
28
+			<id>1599716527245</id>
29
+			<name></name>
30
+			<type>26</type>
31
+			<matcher>
32
+				<id>org.eclipse.ui.ide.multiFilter</id>
33
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
34
+			</matcher>
35
+		</filter>
36
+	</filteredResources>
37
+</projectDescription>

+ 83
- 1
README.md 查看文件

@@ -1,3 +1,85 @@
1 1
 # chartDp_city
2 2
 
3
-智慧城市代码库
3
+## 智慧城市代码库
4
+
5
+## 命令说明
6
+```
7
+//将npm源设为淘宝镜像源
8
+npm config set registry https://registry.npm.taobao.org
9
+
10
+//预编译第三方库及自定义公共库(第一次使用或增加第三库后,需要运行一下)
11
+npm run dll
12
+
13
+//运行开发测试环境
14
+npm run dev
15
+
16
+//发布图表,生成图表存放在/dist目录下
17
+npm run dist
18
+
19
+//发布图表(不包含第三方库),生成图表存放在/dist目录下
20
+npm run dist-noThird
21
+```
22
+
23
+## 项目结构说明
24
+项目结构如下图
25
+* src:项目源文件目录,主要存放项目文件。
26
+    * 其中chart目录存放页面文件
27
+    	- city //白模城市
28
+    	- city2 //精模城市
29
+    	- cityCustom //自定义城市
30
+* dev/static:不适合打包的大文件。使用dist命令发布图表后,需要将static中的静态文件拷贝到使用图表项目的对应位置(将GisFrame拷贝到根目录的/dev/static/下)
31
+* test:测试目录。图表开发环境下的测试页面,用于测试图表渲染,加载数据等
32
+
33
+**注 npm run dist 和 npm run dist-noThird都是发布图表。 后者不会将第三方库打包到每个图表中,推荐使用后者**
34
+
35
+
36
+## 其他规则
37
+* 白模地图命名:ChartCityMap+CD。ChartCityMap为固定前缀,CD(成都)为城市名称首字母大写
38
+* 精模地图命名:ChartCityMap+CD+2
39
+* 图表暴露类名:和文件夹名字保持一致
40
+* 现有地图
41
+	- 白模:成都、贵阳、广州、南京、上海、深圳、天津、武汉
42
+	- 精模:上海
43
+
44
+
45
+## 新增城市
46
+
47
+以成都(白模)为例
48
+1. 在 /src/chart/city/ 下复制一个其他城市改名为 ChartCityMapCD,例如贵阳
49
+2. 将 /ChartCityMapCD/data/ 下的的json数据替换为成都的数据
50
+3. 在 /ChartCityMapCD/chengdu.js 中修改相应数据
51
+	* coordinateRange 城市的范围(通过 **水经注** 查询)
52
+	* resources 加载的模型资源(模型按 区/类型 进行了切片,可以部分加载)
53
+	* view 地图的初始状态(中心点、旋转角度、缩放倍数)
54
+4. 下载模型文件(通过 **水经注** 下载)
55
+	* 将下载的模型文件放在 /dev/static/GisFrame/chengdu/ 下
56
+5. 创建测试页面
57
+	* 在 /test/city/ 下复制一个其他城市改名为 ChartCityMapCD,例如贵阳
58
+	* 将文件中的相关引用改为新图表的引用
59
+6. 测试新城市
60
+	* npm run dev
61
+	* 访问 http://localhost:3005/ChartCityMapCD/index.html
62
+7. 发布图表:npm run dist-noThird
63
+
64
+
65
+## 项目目录
66
+```
67
+.
68
+├── README.md
69
+├── config //webpack 配置文件
70
+├── dev //开发测试目录
71
+├── dist //最终发布目录
72
+├── dll //预编译文件目录
73
+│   ├── dll.js
74
+│   └── manifest.json
75
+├── package-lock.json
76
+├── package.json
77
+├── src  //源文件目录
78
+│   ├── chart
79
+│   │	├── city //白模
80
+│   │	├── city2 //精模
81
+│   │	├── cityCustom //自定义城市(可以上传城市模型)
82
+│   ├── common
83
+│   ├── utils //工具类
84
+└── test //测试文件目录
85
+```

+ 347
- 0
config/config.js 查看文件

@@ -0,0 +1,347 @@
1
+const path = require('path');
2
+const webpack = require('webpack');
3
+const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
4
+const glob = require("glob");
5
+const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
6
+const HtmlWebpackPlugin = require('html-webpack-plugin');
7
+// const CopyWebpackPlugin = require("copy-webpack-plugin");
8
+const CleanWebpackPlugin = require('clean-webpack-plugin');
9
+const packageJson = require("./../package.json");
10
+const HappyPack = require('happypack');
11
+const os = require('os');
12
+const happyThreadPool = HappyPack.ThreadPool({size: os.cpus().length});
13
+let pathVars = require("./pathVars");
14
+let config = {};
15
+
16
+/*----------------------------------- page ---------------------------------*/
17
+//测试页面
18
+
19
+let files = [].concat(
20
+    glob.sync(pathVars.testPath + `/city/ChartCityMap*/index.html`),
21
+);
22
+
23
+console.log("测试页面\n", files);
24
+let entryDev = {
25
+    vendor: Object.keys(packageJson.dependencies)
26
+};
27
+let pageAry = [];
28
+files.forEach(function (filePath) {
29
+    //将单个文件路径(/test/ChartBar3D/index.htsml)路径拆分成数组
30
+    let tempAry = filePath.split('/');
31
+    //demo文件夹名
32
+    let typeName = tempAry[tempAry.length - 3];
33
+    let chunkName = tempAry[tempAry.length - 2];
34
+    let htmlName = chunkName + "/index.html";
35
+
36
+    let obj = {};
37
+    obj["filePath"] = filePath;
38
+    obj["chunkName"] = chunkName;
39
+    obj["htmlName"] = htmlName;
40
+    obj["entryJs"] = pathVars.testPath + "/" + typeName + "/" + chunkName + "/index.js";
41
+    entryDev[chunkName] = obj["entryJs"];
42
+    pageAry.push(obj);
43
+});
44
+
45
+
46
+//图表主js文件
47
+// let chartFiles = glob.sync(pathVars.srcPath + "/chart/bar/ChartBar39/ChartBar39.js");
48
+let chartFiles = [].concat(
49
+    glob.sync(pathVars.srcPath + "/chart/city/ChartCityMap*/ChartCityMap*.js"),
50
+);
51
+
52
+console.log("图表主js文件\n", chartFiles);
53
+let chartAry = [];
54
+let entryDist = {};
55
+chartFiles.forEach(function (filePath) {
56
+    //将单个文件路径(/src/chart/ChartEarth/ChartEarth.js)路径拆分成数组
57
+    let tempAry = filePath.split('/');
58
+    let chunkName = tempAry[tempAry.length - 2];
59
+    let obj = {};
60
+    obj["chunkName"] = chunkName;
61
+    chartAry.push(obj);
62
+    //
63
+    entryDist[chunkName] = filePath;
64
+});
65
+
66
+
67
+/*-----------------------------  entry  ------------------------------*/
68
+
69
+config["entryDev"] = entryDev;
70
+
71
+
72
+config["entryDist"] = entryDist;
73
+
74
+
75
+/*-----------------------------  devServer  ------------------------------*/
76
+let devServer = {
77
+    // open: true,
78
+    publicPath: "/",
79
+    contentBase: pathVars.devPath,
80
+    hot: true,
81
+    inline: true,
82
+    port: 3005,
83
+    host: 'localhost',
84
+    watchOptions:{
85
+        ignored:/node_modules/,
86
+        aggregateTimeout:500
87
+    }
88
+};
89
+config["devServer"] = devServer;
90
+
91
+
92
+/*-----------------------------  output  ------------------------------*/
93
+let outputDev = {
94
+    path: pathVars.distPath,
95
+    publicPath: "/",     // 表示资源的发布地址,当配置过该属性后,打包文件中所有通过相对路径引用的资源都会被配置的路径所替换(如:css中背景图的路径)
96
+    filename: "[name]/main.js"
97
+};
98
+config["outputDev"] = outputDev;
99
+
100
+let outputDist = {
101
+    path: pathVars.distPath,
102
+    publicPath: "/",
103
+    filename: "[name]_[chunkhash:5].js",
104
+    library: "[name]",
105
+    libraryTarget: "umd"
106
+//  libraryExport: "default"
107
+};
108
+config["outputDist"] = outputDist;
109
+
110
+
111
+/*-----------------------------  externals  ------------------------------*/
112
+if (process.env.NODE_ENV === "noThird") {
113
+    console.log("==================", process.env.NODE_ENV);
114
+    config["externals"] = {
115
+        'three': {
116
+            commonjs: 'THREE',
117
+            commonjs2: 'THREE',
118
+            amd: 'THREE',
119
+            root: 'THREE'
120
+        },
121
+        'zrender': {
122
+            commonjs: 'zrender',
123
+            commonjs2: 'zrender',
124
+            amd: 'zrender',
125
+            root: 'zrender'
126
+        },
127
+        'gsap': {
128
+            commonjs: 'gsap',
129
+            commonjs2: 'gsap',
130
+            amd: 'gsap',
131
+            root: 'gsap'
132
+        }
133
+    };
134
+} else {
135
+    config["externals"] = {};
136
+    // config["outputDist"]["filename"]="[name].js"
137
+}
138
+
139
+
140
+/*-----------------------------  module  ------------------------------*/
141
+let rules = [
142
+    // {
143
+    //     test: /\.js$/,
144
+    //     exclude: pathVars.nodeModulesPath,
145
+    //
146
+    //     //use: ['babel-loader'],
147
+    //     use: ["happypack/loader?id=babel"]
148
+    // },
149
+    {
150
+        test: /\.js$/,
151
+        // exclude: pathVars.nodeModulesPath,
152
+        loader: "babel-loader",
153
+    },
154
+    // {
155
+    //     test: /\.glsl$/,
156
+    //     loader: 'webpack-glsl-loader'
157
+    // },
158
+    {
159
+        test: /\.(glsl|vs|fs|vert|frag)$/,
160
+        // exclude: [pathVars.nodeModulesPath, pathVars.dllPath],
161
+        use: ["raw-loader", "glslify-loader"]
162
+    },
163
+    {
164
+        // 匹配 *.worker.js
165
+        test: /\.worker\.js$/,
166
+        use: {
167
+          loader: 'worker-loader',
168
+          options: {
169
+            name: '[name]:[hash:8].js',
170
+            inline: true,
171
+            fallback: false
172
+            // publicPath: '/scripts/workers/'
173
+          }
174
+        }
175
+    },
176
+]
177
+// let jsonRuleDist={
178
+//     test:/\.json$/,
179
+//     type: 'javascript/auto',
180
+//     use:[
181
+//         {
182
+//             loader: 'json-loader',
183
+//
184
+//             options: {
185
+//                 publicPath: '../../static/',
186
+//                 name: 'json/[name]_[hash:5].[ext]'
187
+//             }
188
+//         }
189
+//     ]
190
+// };
191
+let imgRuleDev = {
192
+    test: /\.(png|jpg|gif)$/,
193
+    // loader: 'url-loader?limit=1000&name=images/[name]_[hash:5].[ext]',
194
+    use: [
195
+        {
196
+            loader: 'file-loader',
197
+            options: {
198
+                publicPath: '/',
199
+                name: 'imgInChart/[name]_[hash:5].[ext]'
200
+            }
201
+        }
202
+    ]
203
+}
204
+let imgRuleDist = {
205
+    test: /\.(png|jpg|gif)$/,
206
+    // loader: 'url-loader?limit=1000&name=images/[name]_[hash:5].[ext]',
207
+    use: [
208
+        {
209
+            loader: 'file-loader',
210
+            options: {
211
+                publicPath: '../../static/',
212
+                name: 'imgInChart/[name]_[hash:5].[ext]'
213
+            }
214
+        }
215
+    ]
216
+};
217
+
218
+config["moduleBaseDev"] = {rules: rules.concat(imgRuleDev)};
219
+config["moduleBaseDist"] = {rules: rules.concat(imgRuleDist)};
220
+
221
+/*-----------------------------  alias  ------------------------------*/
222
+config["resolve"] = {
223
+    "alias":{
224
+        "utils": path.resolve(__dirname, "../src/utils/")
225
+    }
226
+}
227
+
228
+//---------------------------------- plugin -----------------------------------//
229
+let pluginBase = [
230
+    /*new CopyWebpackPlugin([{
231
+        from: pathVars.staticPath,
232
+        //to 起始位置为发布目录
233
+        to: "static"
234
+    }]),*/
235
+    new webpack.DllReferencePlugin({
236
+        context: pathVars.rootPath,
237
+        manifest: require(pathVars.dllPath + '/manifest.json')
238
+    }),
239
+    new HappyPack({
240
+        id: 'babel',
241
+        loaders: ["babel-loader"],
242
+        threadPool: happyThreadPool
243
+    }),
244
+    new webpack.DefinePlugin({
245
+        my_ENV: JSON.stringify(process.env.my_ENV)
246
+    })
247
+];
248
+
249
+const htmlBase = [];
250
+pageAry.forEach(function (page) {
251
+    const htmlPlugin = new HtmlWebpackPlugin({
252
+        title: '',
253
+        template: page["filePath"],
254
+        filename: page["htmlName"],
255
+        inject: 'body',
256
+        chunks: ["manifest", "vendor", "common", page["chunkName"]],
257
+        chunksSortMode: 'none'
258
+    });
259
+    htmlBase.push(htmlPlugin);
260
+});
261
+// pageVars.forEach(function (page) {
262
+//     let htmlPlugin = new HtmlWebpackPlugin({
263
+//         title: 'page1',
264
+//         template: page["filePath"],
265
+//         filename: page["htmlName"],
266
+//         inject: 'body',
267
+//         chunks: /*isDev ? [page["chunkName"]] :*/ ["manifest", "vendor", "common", page["chunkName"]],
268
+//         chunksSortMode: 'dependency'
269
+//     });
270
+//     pluginBase.push(htmlPlugin);
271
+// });
272
+
273
+//------------------- dev
274
+let pluginsDev = [
275
+    new webpack.HotModuleReplacementPlugin()
276
+];
277
+config["pluginsDev"] = pluginBase.concat(pluginsDev, htmlBase);
278
+
279
+
280
+//------------------- dist
281
+let pluginDist = [
282
+    new CleanWebpackPlugin(pathVars.distPath,
283
+        {
284
+            root: pathVars.rootPath,
285
+            verbose: true
286
+        }
287
+    ),
288
+    new webpack.NoEmitOnErrorsPlugin(),
289
+
290
+
291
+];
292
+config["pluginDist"] = pluginBase.concat(pluginDist);
293
+
294
+//----------------------------------- optimization  ---------------------------//
295
+config["optimizationDev"] = {
296
+    minimize: false,
297
+    splitChunks: {
298
+        chunks: "all", //initial
299
+        minSize: 30 * 1024, //模块大于30k会被抽离到公共模块 也就是说每个页面的js不会大于30k
300
+        minChunks: 1, //模块出现1次就会被抽离到公共模块
301
+        maxAsyncRequests: 5, //异步模块,一次最多只能被加载5个
302
+        maxInitialRequests: 3, //入口模块最多只能加载3个
303
+        name: true,
304
+        cacheGroups: {
305
+            default: {
306
+                chunks: "all",
307
+                name: "common",
308
+                test: /[\\/]src[\\/]/,
309
+                minChunks: 3,
310
+                priority: -20,
311
+                reuseExistingChunk: true
312
+            },
313
+            vendor: {
314
+                chunks: "all",
315
+                name: "vendor",
316
+                test: /[\\/]node_modules[\\/]/,
317
+                minChunks: 1,
318
+                priority: -10
319
+            }
320
+        }
321
+    },
322
+    runtimeChunk: {
323
+        name: "manifest"
324
+    }
325
+};
326
+//
327
+config["optimizationDist"] = {
328
+    minimize: true,
329
+    minimizer: [
330
+        new UglifyJsPlugin({
331
+            cache: true,
332
+            parallel: true,
333
+            uglifyOptions: {
334
+                warnings: false,
335
+                compress: {
336
+                    // warnings: false,
337
+                    drop_debugger: true,
338
+                    drop_console: true
339
+                }
340
+            }
341
+        }),
342
+        new OptimizeCssAssetsPlugin({})
343
+    ],
344
+    splitChunks: {}
345
+
346
+};
347
+module.exports = config;

+ 28
- 0
config/pathVars.js 查看文件

@@ -0,0 +1,28 @@
1
+const path = require('path');
2
+let pathVars = {};
3
+
4
+//项目根目录
5
+pathVars.rootPath = path.resolve(__dirname, '../');
6
+
7
+//源文件目录
8
+pathVars.srcPath = path.resolve(pathVars.rootPath, './src');
9
+
10
+//预编译文件存放目录
11
+pathVars.dllPath = path.resolve(pathVars.rootPath, './dll');
12
+
13
+//开发测试目录
14
+pathVars.devPath = path.resolve(pathVars.rootPath, './dev');
15
+
16
+//
17
+pathVars.staticPath = path.resolve(pathVars.rootPath, './dev/static');
18
+
19
+//发布目录
20
+pathVars.distPath = path.resolve(pathVars.rootPath, './dist');
21
+
22
+//node_modules目录
23
+pathVars.nodeModulesPath = path.resolve(pathVars.rootPath, './node_modules');
24
+
25
+//测试目录
26
+pathVars.testPath = path.resolve(pathVars.rootPath, './test');
27
+
28
+module.exports = pathVars;

+ 12
- 0
config/webpack.dev.config.js 查看文件

@@ -0,0 +1,12 @@
1
+let config = require("./config");
2
+module.exports = {
3
+    mode: 'development',
4
+    devtool: 'eval-source-map',
5
+    entry: config.entryDev,
6
+    output: config.outputDev,
7
+    devServer:config.devServer,
8
+    plugins: config.pluginsDev,
9
+    module: config.moduleBaseDev,
10
+    optimization: config["optimizationDev"],
11
+    resolve: config.resolve
12
+};

+ 12
- 0
config/webpack.dist.config.js 查看文件

@@ -0,0 +1,12 @@
1
+let config = require("./config");
2
+
3
+module.exports = {
4
+    mode:"production",
5
+    entry: config.entryDist,
6
+    output: config.outputDist,
7
+    externals: config.externals,
8
+    plugins: config.pluginDist,
9
+    module: config.moduleBaseDist,
10
+    optimization:config["optimizationDist"],
11
+    resolve: config.resolve
12
+};

+ 51
- 0
config/webpack.dll.config.js 查看文件

@@ -0,0 +1,51 @@
1
+/*
2
+ * 用来预编译第三方库*/
3
+
4
+const webpack = require('webpack');
5
+const pathVars = require('./pathVars');
6
+const packageJson = require("./../package.json");
7
+// const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
8
+//
9
+module.exports = {
10
+    mode: 'development',
11
+    entry: {
12
+        /*第三方库*/
13
+        dll: Object.keys(packageJson.dependencies)
14
+    },
15
+    output: {
16
+        path: pathVars.dllPath,
17
+        filename: "[name].js",
18
+        library: '[name]',
19
+        libraryTarget: 'umd',
20
+        umdNamedDefine: true
21
+    },
22
+    plugins: [
23
+        //new webpack.NoEmitOnErrorsPlugin(),
24
+        new webpack.DllPlugin({
25
+            // path 定义 manifest 文件生成的位置 [name]的部分由entry的名字替换
26
+            path: pathVars.dllPath + '/manifest.json',
27
+            // name 是dll暴露的对象名,要跟 output.library 保持一致
28
+            name: '[name]',
29
+            // context 是解析包路径的上下文,这个要跟接下来配置的dll一致
30
+            context: pathVars.dllPath
31
+        })
32
+    ],
33
+    module: {
34
+        rules: [
35
+            {
36
+                test: /\.(css|less)$/,
37
+                //exclude: [pathVars.nodeModulesPath],
38
+                use: [
39
+                    "style-loader",
40
+                    "css-loader",
41
+                    "less-loader"
42
+                ],
43
+            },
44
+            {
45
+                test: /\.js$/,
46
+                //exclude: pathVars.nodeModulesPath,
47
+                loader: "babel-loader"
48
+            }
49
+        ]
50
+    }
51
+};

二進制
dev/static/GisFrame/beijing/building/东城区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/东城区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/东城区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/东城区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/东城区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/东城区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/丰台区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/丰台区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/丰台区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/丰台区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/丰台区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/丰台区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/大兴区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/大兴区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/大兴区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/大兴区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/大兴区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/大兴区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/密云区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/密云区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/密云区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/密云区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/密云区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/密云区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/平谷区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/平谷区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/平谷区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/平谷区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/平谷区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/平谷区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/延庆区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/延庆区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/延庆区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/延庆区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/延庆区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/延庆区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/怀柔区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/怀柔区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/怀柔区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/怀柔区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/怀柔区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/怀柔区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/昌平区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/昌平区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/昌平区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/昌平区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/昌平区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/昌平区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/朝阳区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/朝阳区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/朝阳区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/朝阳区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/朝阳区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/朝阳区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/海淀区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/海淀区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/海淀区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/海淀区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/海淀区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/海淀区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/矢量下载_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/矢量下载_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/矢量下载_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/矢量下载_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/矢量下载_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/矢量下载_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/石景山区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/石景山区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/石景山区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/石景山区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/石景山区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/石景山区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/西城区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/西城区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/西城区_百度建筑.sbn 查看文件


二進制
dev/static/GisFrame/beijing/building/西城区_百度建筑.sbx 查看文件


二進制
dev/static/GisFrame/beijing/building/西城区_百度建筑.shp 查看文件


二進制
dev/static/GisFrame/beijing/building/西城区_百度建筑.shx 查看文件


二進制
dev/static/GisFrame/beijing/building/通州区_百度建筑.dbf 查看文件


+ 1
- 0
dev/static/GisFrame/beijing/building/通州区_百度建筑.prj 查看文件

@@ -0,0 +1 @@
1
+GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

二進制
dev/static/GisFrame/beijing/building/通州区_百度建筑.sbn 查看文件


+ 0
- 0
dev/static/GisFrame/beijing/building/通州区_百度建筑.sbx 查看文件


部分文件因文件數量過多而無法顯示

Loading…
取消
儲存