Merge branch 'dev' of github.com:dataease/dataease into dev

This commit is contained in:
taojinlong 2022-02-23 17:19:21 +08:00
commit b6d1516928
3401 changed files with 3733 additions and 375 deletions

View File

@ -42,6 +42,7 @@ public class ShiroServiceImpl implements ShiroService {
filterChainDefinitionMap.put("/link/**", ANON);
filterChainDefinitionMap.put("/index.html", ANON);
filterChainDefinitionMap.put("/link.html", ANON);
filterChainDefinitionMap.put("/board/**", ANON);
// 获取主题信息
filterChainDefinitionMap.put("/plugin/theme/themes", ANON);

View File

@ -18,6 +18,7 @@ import io.dataease.controller.request.datasource.DatasourceRequest;
import io.dataease.controller.response.ChartDetail;
import io.dataease.controller.response.DataSetDetail;
import io.dataease.dto.chart.*;
import io.dataease.dto.dataset.DataSetTableDTO;
import io.dataease.dto.dataset.DataSetTableUnionDTO;
import io.dataease.dto.dataset.DataTableInfoDTO;
import io.dataease.i18n.Translator;
@ -43,8 +44,6 @@ import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors;
import static io.dataease.commons.constants.ColumnPermissionConstants.Desensitization_desc;
/**
* @Author gin
* @Date 2021/3/1 12:34 下午
@ -243,11 +242,13 @@ public class ChartViewService {
DatasetTableField datasetTableFieldObj = DatasetTableField.builder().tableId(view.getTableId()).checked(Boolean.TRUE).build();
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableFieldObj);
DatasetTable datasetTable = dataSetTableService.get(view.getTableId());
// 获取数据集,需校验权限
DataSetTableDTO table = dataSetTableService.getWithPermission(view.getTableId());
checkPermission("use", table);
//列权限
List<String> desensitizationList = new ArrayList<>();
List<DatasetTableField> columnPermissionFields = permissionService.filterColumnPermissons(fields, desensitizationList, datasetTable.getId(), requestList.getUser());
List<DatasetTableField> columnPermissionFields = permissionService.filterColumnPermissons(fields, desensitizationList, table.getId(), requestList.getUser());
//将没有权限的列删掉
List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList());
dataeaseNames.add("*");
@ -258,7 +259,7 @@ public class ChartViewService {
//行权限
List<ChartFieldCustomFilterDTO> rowPermissionFields = permissionService.getCustomFilters(columnPermissionFields, datasetTable, requestList.getUser());
List<ChartFieldCustomFilterDTO> rowPermissionFields = permissionService.getCustomFilters(columnPermissionFields, table, requestList.getUser());
fieldCustomFilter.addAll(rowPermissionFields);
for (ChartFieldCustomFilterDTO ele : fieldCustomFilter) {
@ -390,11 +391,6 @@ public class ChartViewService {
}
}
// 获取数据集,需校验权限
DatasetTable table = dataSetTableService.get(view.getTableId());
if (ObjectUtils.isEmpty(table)) {
throw new RuntimeException(Translator.get("i18n_dataset_delete_or_no_permission"));
}
// 判断连接方式直连或者定时抽取 table.mode
DatasourceRequest datasourceRequest = new DatasourceRequest();
List<String[]> data = new ArrayList<>();
@ -1680,9 +1676,9 @@ public class ChartViewService {
return chartViewMapper.selectByPrimaryKey(id);
}
public String chartCopy(String id,String panelId) {
public String chartCopy(String id, String panelId) {
String newChartId = UUID.randomUUID().toString();
extChartViewMapper.chartCopy(newChartId, id,panelId);
extChartViewMapper.chartCopy(newChartId, id, panelId);
return newChartId;
}
@ -1697,4 +1693,16 @@ public class ChartViewService {
return "NO";
}
}
// check permission
private void checkPermission(String needPermission, DataSetTableDTO table) {
if (ObjectUtils.isEmpty(table)) {
throw new RuntimeException(Translator.get("i18n_dataset_delete"));
}
if (!AuthUtils.getUser().getIsAdmin()) {
if (ObjectUtils.isEmpty(table.getPrivileges()) || !table.getPrivileges().contains(needPermission)) {
throw new RuntimeException(Translator.get("i18n_dataset_no_permission"));
}
}
}
}

View File

@ -1,6 +1,7 @@
package io.dataease.service.dataset;
import com.google.gson.Gson;
import io.dataease.auth.annotation.DeCleaner;
import io.dataease.base.domain.*;
import io.dataease.base.mapper.*;
import io.dataease.base.mapper.ext.ExtDataSetGroupMapper;
@ -103,6 +104,7 @@ public class DataSetTableService {
private static Logger logger = LoggerFactory.getLogger(ClassloaderResponsity.class);
@DeCleaner(value = DePermissionType.DATASET)
public void batchInsert(List<DataSetTableRequest> datasetTable) throws Exception {
for (DataSetTableRequest table : datasetTable) {
save(table);
@ -126,6 +128,7 @@ public class DataSetTableService {
}
}
@DeCleaner(value = DePermissionType.DATASET)
public void saveExcel(DataSetTableRequest datasetTable) throws Exception {
List<String> datasetIdList = new ArrayList<>();
@ -233,6 +236,7 @@ public class DataSetTableService {
}
}
@DeCleaner(value = DePermissionType.DATASET)
public DatasetTable save(DataSetTableRequest datasetTable) throws Exception {
checkName(datasetTable);
if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "sql")) {
@ -1795,6 +1799,7 @@ public class DataSetTableService {
return dataSetDetail;
}
@DeCleaner(value = DePermissionType.DATASET)
public ExcelFileData excelSaveAndParse(MultipartFile file, String tableId, Integer editType) throws Exception {
String filename = file.getOriginalFilename();
// parse file

View File

@ -70,7 +70,8 @@ i18n_datasource_not_allow_delete_msg= datasets are using this data source and ca
i18n_task_name_repeat=Name is used in same data set
i18n_id_or_pwd_error=Invalid ID or password
i18n_datasource_delete=Data source is delete
i18n_dataset_delete_or_no_permission=Data set is delete or no permission
i18n_dataset_delete=Data set is deleted
i18n_dataset_no_permission=Data set no permission
i18n_chart_delete=Chart is delete
i18n_not_exec_add_sync=There is no completed synchronization task. Incremental synchronization cannot be performed
i18n_excel_header_empty=Excel first row can not empty

View File

@ -69,7 +69,8 @@ i18n_datasource_not_allow_delete_msg= 个数据集正在使用此数据源,无
i18n_task_name_repeat=同一数据集下任务名称已被使用
i18n_id_or_pwd_error=无效的ID或密码
i18n_datasource_delete=当前用到的数据源已被删除
i18n_dataset_delete_or_no_permission=当前用到的数据集没有权限或已被删除
i18n_dataset_delete=当前用到的数据集已被删除
i18n_dataset_no_permission=当前用到的数据集没有权限
i18n_chart_delete=当前用到的视图已被删除
i18n_not_exec_add_sync=没有已完成的同步任务,无法进行增量同步
i18n_excel_header_empty=Excel第一行为空

View File

@ -70,7 +70,8 @@ i18n_datasource_not_allow_delete_msg= 個數據集正在使用此數據源,無
i18n_task_name_repeat=同一數據集下任務名稱已被使用
i18n_id_or_pwd_error=無效的ID或密碼
i18n_datasource_delete=當前用到的數據源已被刪除
i18n_dataset_delete_or_no_permission=當前用到的數據集沒有權限或已被刪除
i18n_dataset_delete=當前用到的數據集已被刪除
i18n_dataset_no_permission=當前用到的數據集沒有權限
i18n_chart_delete=當前用到的視圖已被刪除
i18n_not_exec_add_sync=沒有已經完成的同步任務,無法進行增量同步
i18n_excel_header_empty=Excel第一行為空

View File

@ -30,7 +30,7 @@
]"
:style="mainSlotStyle"
>
<edit-bar v-if="editBarShow" style="transform: translateZ(10px)" :active-model="'edit'" :element="element" @showViewDetails="showViewDetails" @amRemoveItem="amRemoveItem" @amAddItem="amAddItem" @resizeView="resizeView" @linkJumpSet="linkJumpSet" @boardSet="boardSet" />
<edit-bar v-if="editBarShow" style="transform: translateZ(10px)" :active-model="'edit'" :element="element" @showViewDetails="showViewDetails" @amRemoveItem="amRemoveItem" @amAddItem="amAddItem" @resizeView="resizeView" @linkJumpSet="linkJumpSet" @boardSet="boardSet" />
<mobile-check-bar v-if="mobileCheckBarShow" :element="element" @amRemoveItem="amRemoveItem" />
<div v-if="resizing" style="transform: translateZ(11px);position: absolute; z-index: 3" :style="resizeShadowStyle" />
<div
@ -531,8 +531,12 @@ export default {
width: this.computedMainSlotWidth,
height: this.computedMainSlotHeight
}
if (this.element.commonBackground.enable) {
style['background'] = `url(${this.element.commonBackground.innerImage}) no-repeat`
if (this.element.commonBackground && this.element.commonBackground.enable) {
if (this.element.commonBackground.backgroundType === 'innerImage') {
style['background'] = `url(${this.element.commonBackground.innerImage}) no-repeat`
} else if (this.element.commonBackground.backgroundType === 'outerImage') {
style['background'] = `url(${this.element.commonBackground.outerImage}) no-repeat`
}
style['background-size'] = `100% 100%`
}
return style

View File

@ -95,7 +95,11 @@ export default {
height: '100%'
}
if (this.config.commonBackground.enable) {
style['background'] = `url(${this.config.commonBackground.innerImage}) no-repeat`
if (this.config.commonBackground.backgroundType === 'innerImage') {
style['background'] = `url(${this.config.commonBackground.innerImage}) no-repeat`
} else if (this.config.commonBackground.backgroundType === 'outerImage') {
style['background'] = `url(${this.config.commonBackground.outerImage}) no-repeat`
}
style['background-size'] = `100% 100%`
}
return style

View File

@ -13,8 +13,8 @@
<el-dropdown-item icon="el-icon-arrow-down" @click.native="downComponent">{{ $t('panel.downComponent') }}</el-dropdown-item>
<el-dropdown-item v-if="'view'===curComponent.type" icon="el-icon-link" @click.native="linkageSetting">{{ $t('panel.linkage_setting') }}</el-dropdown-item>
<el-dropdown-item v-if="'de-tabs'===curComponent.type" icon="el-icon-link" @click.native="addTab">{{ $t('panel.add_tab') }}</el-dropdown-item>
<el-dropdown-item v-if="'view'===curComponent.type" icon="el-icon-connection" @click.native="linkJumpSet">跳转设置</el-dropdown-item>
<el-dropdown-item icon="el-icon-full-screen" @click.native="boardSet">设置边框</el-dropdown-item>
<el-dropdown-item v-if="'view'===curComponent.type" icon="el-icon-connection" @click.native="linkJumpSet">{{ $t('panel.setting_jump') }}</el-dropdown-item>
<el-dropdown-item icon="el-icon-full-screen" @click.native="boardSet">{{ $t('panel.setting_background') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>

View File

@ -172,8 +172,8 @@
<el-dialog
:visible.sync="boardSetVisible"
width="750px"
:title="$t('panel.choose_border')"
class="dialog-css"
:close-on-click-modal="false"
:show-close="false"
:destroy-on-close="true"
:append-to-body="true"

View File

@ -126,8 +126,7 @@ export default {
'targetLinkageInfo',
'mobileLayoutStatus',
'mobileComponentData',
'componentDataCache',
'styleChangeTimes'
'componentDataCache'
])
},
created() {

View File

@ -8,65 +8,63 @@
'rect-shape'
]"
>
<div :style="componentBackGround">
<EditBarView v-if="editBarViewShowFlag" :is-edit="isEdit" :view-id="element.propValue.viewId" @showViewDetails="openChartDetailsDialog" />
<div v-if="requestStatus==='error'" class="chart-error-class">
<div class="chart-error-message-class">
{{ message }},{{ $t('chart.chart_show_error') }}
<br>
{{ $t('chart.chart_error_tips') }}
</div>
</div>
<plugin-com
v-if="chart.isPlugin"
:ref="element.propValue.id"
:component-name="chart.type + '-view'"
:obj="{chart, trackMenu, searchCount, terminalType: scaleCoefficientType}"
class="chart-class"
/>
<chart-component
v-else-if="charViewShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
:terminal-type="scaleCoefficientType"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-g2
v-else-if="charViewG2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-s2
v-else-if="charViewS2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<table-normal
v-else-if="tableShowFlag"
:ref="element.propValue.id"
:show-summary="chart.type === 'table-normal'"
:chart="chart"
class="table-class"
/>
<label-normal v-else-if="labelShowFlag" :ref="element.propValue.id" :chart="chart" class="table-class" />
<div style="position: absolute;left: 8px;bottom:8px;">
<drill-path :drill-filters="drillFilters" @onDrillJump="drillJump" />
<EditBarView v-if="editBarViewShowFlag" :is-edit="isEdit" :view-id="element.propValue.viewId" @showViewDetails="openChartDetailsDialog" />
<div v-if="requestStatus==='error'" class="chart-error-class">
<div class="chart-error-message-class">
{{ message }},{{ $t('chart.chart_show_error') }}
<br>
{{ $t('chart.chart_error_tips') }}
</div>
</div>
<plugin-com
v-if="chart.isPlugin"
:ref="element.propValue.id"
:component-name="chart.type + '-view'"
:obj="{chart, trackMenu, searchCount, terminalType: scaleCoefficientType}"
class="chart-class"
/>
<chart-component
v-else-if="charViewShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
:terminal-type="scaleCoefficientType"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-g2
v-else-if="charViewG2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-s2
v-else-if="charViewS2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<table-normal
v-else-if="tableShowFlag"
:ref="element.propValue.id"
:show-summary="chart.type === 'table-normal'"
:chart="chart"
class="table-class"
/>
<label-normal v-else-if="labelShowFlag" :ref="element.propValue.id" :chart="chart" class="table-class" />
<div style="position: absolute;left: 8px;bottom:8px;">
<drill-path :drill-filters="drillFilters" @onDrillJump="drillJump" />
</div>
</div>
</template>
@ -92,7 +90,6 @@ import EditBarView from '@/components/canvas/components/Editor/EditBarView'
import { customAttrTrans, customStyleTrans, recursionTransObj } from '@/components/canvas/utils/style'
import ChartComponentS2 from '@/views/chart/components/ChartComponentS2'
import PluginCom from '@/views/system/plugin/PluginCom'
import { hexColorToRGBA } from '@/views/chart/chart/util'
export default {
name: 'UserView',
components: { PluginCom, ChartComponentS2, EditBarView, ChartComponent, TableNormal, LabelNormal, DrillPath, ChartComponentG2 },
@ -169,31 +166,6 @@ export default {
},
computed: {
//
componentBackGround() {
const customStyle = JSON.parse(this.chart.customStyle)
let style = {
height: '100%',
width: '100%',
backgroundSize: '100% 100% !important',
borderRadius: '0px'
}
if (customStyle && customStyle.background) {
style.borderRadius = customStyle.background.borderRadius + 'px!important'
if (customStyle.background.backgroundType === 'outImage' && typeof (customStyle.background.outImage) === 'string') {
style = {
background: `url(${customStyle.background.outImage}) no-repeat`,
...style
}
} else if (!customStyle.background.backgroundType || customStyle.background.backgroundType === 'color') {
style = {
background: hexColorToRGBA(customStyle.background.color, customStyle.background.alpha),
...style
}
}
}
return style
},
scaleCoefficient() {
if (this.terminal === 'pc' && !this.mobileLayoutStatus) {
return 1.1

View File

@ -19,10 +19,12 @@ export const BASE_MOBILE_STYLE = {
// 公共背景
export const COMMON_BACKGROUND = {
enable: false,
backgroundType: 'color',
backgroundType: 'innerImage',
color: '#FFFFFF',
innerImage: null,
outerImage: null
outerImage: null,
alpha: 100,
borderRadius: 5
}
// 公共样式

View File

@ -1556,7 +1556,8 @@ export default {
input_title: 'Input Title',
show_title: 'Show Title',
default_settings: 'Default Settings',
choose_border: 'Choose Border'
choose_background: 'Choose Component Background',
choose_background_tips: 'The component`s own background settings will overwrite the current settings'
},
plugin: {
local_install: 'Local installation',
@ -1571,7 +1572,9 @@ export default {
release_time: 'Time',
un_install: 'Uninstall',
uninstall_confirm: 'Comfirm to uninstall the plugin?',
uninstall_cancel: 'Cancel uninstall plugin'
uninstall_cancel: 'Cancel uninstall plugin',
setting_background: 'BackGround',
setting_jump: 'Jump Setting'
},
display: {
logo: 'Head system logo',

View File

@ -1557,7 +1557,10 @@ export default {
input_title: '請輸入標題',
show_title: '顯示標題',
default_settings: '默認值設置',
choose_border: '选择边框'
choose_background: '选择组件背景',
choose_background_tips: '组件自有的背景设置会覆盖当前设置',
setting_background: '设置背景',
setting_jump: '跳转设置'
},
plugin: {
local_install: '本地安裝',

View File

@ -1566,7 +1566,10 @@ export default {
input_title: '请输入标题',
show_title: '显示标题',
default_settings: '默认值设置',
choose_border: '选择边框'
choose_background: '选择组件背景',
choose_background_tips: '组件自有的背景设置会覆盖当前设置',
setting_background: '设置背景',
setting_jump: '跳转设置'
},
plugin: {
local_install: '本地安装',

View File

@ -10,9 +10,7 @@
:style="classBackground"
@click.stop="setBoard"
/>
<el-tooltip class="item" effect="light" :content="template.name" placement="bottom">
<span class="demonstration">{{ template.name }}</span>
</el-tooltip>
</div>
</template>
@ -59,25 +57,25 @@ export default {
.testcase-template {
display: inline-block;
margin: 10px 30px;
width: 150px;
margin: 10px 0px;
width: 90px;
}
.demonstration {
display: block;
font-size: 14px;
font-size: 8px;
color: gray;
text-align: center;
margin: 10px auto;
width: 150px;
width: 130px;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.template-img {
height: 112px;
width: 200px;
height: 80px;
width: 130px;
margin: 0 auto;
box-shadow: 0 0 2px 0 rgba(31,31,31,0.15), 0 1px 2px 0 rgba(31,31,31,0.15);
border: solid 2px #fff;

View File

@ -1,24 +1,75 @@
<template>
<el-row>
<el-row class="main-row">
<el-row v-for="(value, key) in BackgroundShowMap" :key="key">
<el-col :span="24"><span>{{ key }}</span> </el-col>
<el-col
v-for="item in value"
:key="item.id"
:span="8"
>
<background-item
:template="item"
/>
<el-row>
<el-col :span="24">
<span style="font-weight:600;margin-right: 20px;font-size: 14px">{{ $t('panel.choose_background') }}</span>
<el-checkbox v-model="curComponent.commonBackground.enable">{{ $t('commons.enable') }}</el-checkbox>
<span style="color: #909399; font-size: 8px;margin-left: 3px">
Tips:{{ $t('panel.choose_background_tips') }}
</span>
</el-col>
</el-row>
<el-row class="main-content" disabled="!curComponent.commonBackground.enable">
<!-- <el-row style="height: 80px;margin-top:10px;margin-bottom:20px;overflow: hidden">-->
<!-- <el-col :span="3" style="padding-left: 10px">-->
<!-- <el-radio v-model="curComponent.commonBackground.backgroundType" label="color" @change="onChangeType">颜色</el-radio>-->
<!-- </el-col>-->
<!-- <el-col :span="3">-->
<!-- <el-color-picker v-model="curComponent.commonBackground.color" class="color-picker-style" :predefine="predefineColors" />-->
<!-- </el-col>-->
<!-- <el-col :span="3" style="text-align: right;margin-top: 8px">-->
<!-- <span>不透明度</span>-->
<!-- </el-col>-->
<!-- <el-col :span="9">-->
<!-- <el-slider v-model="curComponent.commonBackground.alpha" show-input :show-input-controls="false" input-size="mini" />-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style="height: 80px;margin-top:10px;margin-bottom:20px;overflow: hidden">
<el-col :span="3" style="padding-left: 10px">
<el-radio v-model="curComponent.commonBackground.backgroundType" label="outerImage" @change="onChangeType">{{ $t('panel.photo') }}</el-radio>
</el-col>
<el-col style="width: 130px!important;">
<el-upload
action=""
accept=".jpeg,.jpg,.png,.gif,.svg"
class="avatar-uploader"
list-type="picture-card"
:class="{disabled:uploadDisabled}"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:http-request="upload"
:file-list="fileList"
:on-change="onChange"
>
<i class="el-icon-plus" />
</el-upload>
<el-dialog top="25vh" width="600px" :modal-append-to-body="false" :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
</el-row>
<el-row>
<el-col :span="3" style="padding-left: 10px">
<el-radio v-model="curComponent.commonBackground.backgroundType" label="innerImage" @change="onChangeType">边框</el-radio>
</el-col>
<el-col :span="21" class="main-row">
<el-row v-for="(value, key) in BackgroundShowMap" :key="key">
<el-col :span="24"><span>{{ key }}</span> </el-col>
<el-col
v-for="item in value"
:key="item.id"
:span="6"
>
<background-item
:template="item"
/>
</el-col>
</el-row>
</el-col>
</el-row>
</el-row>
<el-row class="root-class">
<el-col :span="9" style="text-align: right;vertical-align: middle">
<el-checkbox v-model="curComponent.commonBackground.enable">{{ $t('commons.enable') }}</el-checkbox>
</el-col>
<el-col :span="6">
<el-col :span="24">
<el-button size="mini" @click="cancel()">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" size="mini" @click="save()">{{ $t('commons.confirm') }}</el-button>
</el-col>
@ -32,6 +83,7 @@ import BackgroundItem from '@/views/background/BackgroundItem'
import { mapState } from 'vuex'
import eventBus from '@/components/canvas/utils/eventBus'
import { deepCopy } from '@/components/canvas/utils/utils'
import { COLOR_PANEL } from '@/views/chart/chart/chart'
export default {
name: 'Background',
@ -40,11 +92,19 @@ export default {
return {
BackgroundShowMap: {},
checked: false,
backgroundOrigin: {}
backgroundOrigin: {},
fileList: [],
dialogImageUrl: '',
dialogVisible: false,
uploadDisabled: false,
panel: null,
predefineColors: COLOR_PANEL
}
},
mounted() {
if (this.curComponent.commonBackground.outerImage && typeof (this.curComponent.commonBackground.outerImage) === 'string') {
this.fileList.push({ url: this.curComponent.commonBackground.outerImage })
}
this.backgroundOrigin = deepCopy(this.curComponent.commonBackground)
this.queryBackground()
},
@ -65,11 +125,44 @@ export default {
this.curComponent.commonBackground.color = this.backgroundOrigin.color
this.curComponent.commonBackground.innerImage = this.backgroundOrigin.innerImage
this.curComponent.commonBackground.outerImage = this.backgroundOrigin.outerImage
this.curComponent.commonBackground.alpha = this.backgroundOrigin.alpha
this.curComponent.commonBackground.borderRadius = this.backgroundOrigin.borderRadius
eventBus.$emit('backgroundSetClose')
},
save() {
this.$store.commit('recordSnapshot')
eventBus.$emit('backgroundSetClose')
},
commitStyle() {
const canvasStyleData = deepCopy(this.canvasStyleData)
canvasStyleData.panel = this.panel
this.$store.commit('setCanvasStyle', canvasStyleData)
this.$store.commit('recordSnapshot', 'commitStyle')
},
onChangeType() {
this.commitStyle()
},
handleRemove(file, fileList) {
this.uploadDisabled = false
this.panel.imageUrl = null
this.fileList = []
this.commitStyle()
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
onChange(file, fileList) {
var _this = this
_this.uploadDisabled = true
const reader = new FileReader()
reader.onload = function() {
_this.curComponent.commonBackground.outerImage = reader.result
}
reader.readAsDataURL(file.raw)
},
upload(file) {
// console.log('this is upload')
}
}
@ -85,7 +178,7 @@ export default {
}
.main-row{
height: 60vh;
height: 40vh;
overflow-y: auto;
}
@ -93,5 +186,44 @@ export default {
margin: 15px 0px 5px;
text-align: center;
}
.avatar-uploader>>>.el-upload {
width: 120px;
height: 80px;
line-height: 90px;
}
.avatar-uploader>>>.el-upload-list li{
width: 120px !important;
height: 80px !important;
}
.disabled>>>.el-upload--picture-card {
display: none;
}
.shape-item{
padding: 6px;
border: none;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.form-item-slider>>>.el-form-item__label{
font-size: 12px;
line-height: 38px;
}
.form-item>>>.el-form-item__label{
font-size: 12px;
}
.el-select-dropdown__item{
padding: 0 20px;
}
span{
font-size: 12px
}
.el-form-item{
margin-bottom: 6px;
}
.main-content{
border:1px solid #E6E6E6;
}
</style>

View File

@ -1,8 +1,3 @@
import {ApplicationContext} from "@/utils/ApplicationContext";
import {BASE_MOBILE_STYLE, HYPERLINKS} from "@/components/canvas/custom-component/component-list";
import store from "@/store";
import {deepCopy, resetID} from "@/components/canvas/utils/utils";
export const DEFAULT_COLOR_CASE = {
value: 'default',
colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],
@ -197,10 +192,7 @@ export const DEFAULT_YAXIS_EXT_STYLE = {
}
}
export const DEFAULT_BACKGROUND_COLOR = {
backgroundType: 'color',
color: '#ffffff',
outImage: null,
innerImage: null,
alpha: 100,
borderRadius: 5
}

View File

@ -174,7 +174,7 @@ export function componentStyle(chart_option, chart) {
chart_option.radar.splitArea = customStyle.split.splitArea
}
if (customStyle.background) {
// chart_option.backgroundColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
chart_option.backgroundColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
}
}
}

View File

@ -40,7 +40,7 @@ export function getTheme(chart) {
customStyle = JSON.parse(chart.customStyle)
// bg
if (customStyle.background) {
// bgColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
bgColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
}
// legend
if (customStyle.legend) {

View File

@ -7,7 +7,7 @@
:style="trackBarStyleTime"
@trackClick="trackClick"
/>
<div :id="chartId" style="width: 100%;height: 100%;overflow: hidden;" />
<div :id="chartId" style="width: 100%;height: 100%;overflow: hidden;" :style="{ borderRadius: borderRadius}" />
<div v-if="chart.type === 'map'" class="map-zoom-box">
<div style="margin-bottom: 0.5em;">
<el-button size="mini" icon="el-icon-plus" circle @click="roamMap(true)" />

View File

@ -87,7 +87,7 @@ export default {
},
bg_class() {
return {
// borderRadius: this.borderRadius
borderRadius: this.borderRadius
}
}
},

View File

@ -1,10 +1,10 @@
<template>
<div ref="chartContainer" style="padding: 0;width: 100%;height: 100%;overflow: hidden;">
<div ref="chartContainer" style="padding: 0;width: 100%;height: 100%;overflow: hidden;" :style="bg_class">
<view-track-bar ref="viewTrack" :track-menu="trackMenu" class="track-bar" :style="trackBarStyleTime" @trackClick="trackClick" />
<span v-if="chart.type" v-show="title_show" ref="title" :style="title_class" style="cursor: default;display: block;">
<p style="padding:6px 10px 0 10px;margin: 0;overflow: hidden;white-space: pre;text-overflow: ellipsis;">{{ chart.title }}</p>
</span>
<div ref="tableContainer" style="width: 100%;overflow: hidden;padding: 8px;">
<div ref="tableContainer" style="width: 100%;overflow: hidden;padding: 8px;" :style="{background:container_bg_class.background}">
<div v-if="chart.type === 'table-normal'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-normal-drill' : 'table-dom-normal'" />
<div v-if="chart.type === 'table-info'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-info-drill' : 'table-dom-info'" />
<div v-if="chart.type === 'table-pivot'" :id="chartId" style="width: 100%;overflow: hidden;" class="table-dom-normal" />
@ -109,6 +109,7 @@ export default {
},
bg_class() {
return {
borderRadius: this.borderRadius
}
}
},
@ -258,7 +259,12 @@ export default {
}
},
setBackGroundBorder() {
if (this.chart.customStyle) {
const customStyle = JSON.parse(this.chart.customStyle)
if (customStyle.background) {
this.borderRadius = (customStyle.background.borderRadius || 0) + 'px'
}
}
},
chartResize() {
this.initData()
@ -319,6 +325,12 @@ export default {
this.$refs.title.style.fontSize = customStyle.text.fontSize + 'px'
}
}
if (customStyle.background) {
this.title_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
this.borderRadius = (customStyle.background.borderRadius || 0) + 'px'
this.container_bg_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
}
}
},

View File

@ -1,82 +1,24 @@
<template>
<div style="width: 100%">
<el-col>
<el-row>
<el-col :span="5" class="col-label-item">
<el-radio v-model="colorForm.backgroundType" label="color" @change="changeBackgroundStyle"><span class="label-item">{{ $t('chart.color') }}</span></el-radio>
</el-col>
<el-col :span="19">
<el-color-picker v-model="colorForm.color" :predefine="predefineColors" size="mini" style="cursor: pointer;z-index: 1004;" @change="changeBackgroundStyle" />
</el-col>
</el-row>
<!-- <el-row>-->
<!-- <el-col :span="5" class="col-label-item">-->
<!-- <el-radio v-model="colorForm.backgroundType" label="innerImage" @change="changeBackgroundStyle"><span class="label-item">边框</span></el-radio>-->
<!-- </el-col>-->
<!-- <el-col :span="19">-->
<!-- <el-button @click="openBoardDialog"> 选择边框</el-button>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style="height: 60px;margin-top:10px;overflow: hidden">
<el-col :span="5" class="col-label-item">
<el-radio v-model="colorForm.backgroundType" label="outImage" @change="changeBackgroundStyle"><span class="label-item">{{ $t('panel.photo') }}</span></el-radio>
</el-col>
<el-col :span="9">
<el-upload
action=""
accept=".jpeg,.jpg,.png,.gif,.svg"
class="avatar-uploader"
list-type="picture-card"
:class="{disabled:uploadDisabled}"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:file-list="fileList"
:on-change="onChange"
:http-request="upload"
>
<i class="el-icon-plus" />
</el-upload>
<el-dialog top="25vh" width="600px" :modal-append-to-body="false" :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
</el-row>
<el-row>
<el-col :span="5" class="col-label-item">
<span class="label-item">{{ $t('chart.border_radius') }}</span>
</el-col>
<el-col :span="19">
<el-slider v-model="colorForm.borderRadius" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />
</el-col>
</el-row>
<el-row v-if="colorForm.backgroundType==='color'">
<el-col :span="5" class="col-label-item">
<span class="label-item">{{ $t('chart.not_alpha') }}</span>
</el-col>
<el-col :span="19">
<el-form ref="colorForm" :model="colorForm" label-width="80px" size="mini">
<el-form-item :label="$t('chart.color')" class="form-item">
<el-color-picker v-model="colorForm.color" class="color-picker-style" :predefine="predefineColors" @change="changeBackgroundStyle" />
</el-form-item>
<el-form-item :label="$t('chart.not_alpha')" class="form-item form-item-slider">
<el-slider v-model="colorForm.alpha" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />
</el-col>
</el-row>
</el-col>
<!-- <el-form ref="colorForm" :model="colorForm" label-width="80px" size="mini" :disabled="param && !hasDataPermission('manage',param.privileges)">-->
<!-- &lt;!&ndash; <el-form-item :label="$t('chart.color')" class="form-item">&ndash;&gt;-->
<!-- &lt;!&ndash; <el-color-picker v-model="colorForm.color" class="color-picker-style" :predefine="predefineColors" @change="changeBackgroundStyle" />&ndash;&gt;-->
<!-- &lt;!&ndash; </el-form-item>&ndash;&gt;-->
<!-- <el-form-item :label="$t('chart.not_alpha')" class="form-item form-item-slider">-->
<!-- <el-slider v-model="colorForm.alpha" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />-->
<!-- </el-form-item>-->
</el-form-item>
<!-- <el-form-item :label="$t('chart.border_radius')" class="form-item form-item-slider">-->
<!-- <el-slider v-model="colorForm.borderRadius" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </el-col>-->
<el-form-item :label="$t('chart.border_radius')" class="form-item form-item-slider">
<el-slider v-model="colorForm.borderRadius" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />
</el-form-item>
</el-form>
</el-col>
</div>
</template>
<script>
import { COLOR_PANEL, DEFAULT_BACKGROUND_COLOR } from '../../chart/chart'
import { deepCopy } from '@/components/canvas/utils/utils'
export default {
name: 'BackgroundColorSelector',
@ -92,10 +34,6 @@ export default {
},
data() {
return {
fileList: [],
dialogImageUrl: '',
dialogVisible: false,
uploadDisabled: false,
colorForm: JSON.parse(JSON.stringify(DEFAULT_BACKGROUND_COLOR)),
predefineColors: COLOR_PANEL
}
@ -124,120 +62,41 @@ export default {
customStyle = JSON.parse(chart.customStyle)
}
if (customStyle.background) {
debugger
this.colorForm = customStyle.background
this.colorForm.backgroundType = this.colorForm.backgroundType || 'color'
if (this.colorForm.outImage && typeof (this.colorForm.outImage) === 'string') {
this.fileList.push({ url: this.colorForm.outImage })
}
}
}
},
onChangeType() {
this.changeBackgroundStyle()
},
handleRemove(file, fileList) {
this.uploadDisabled = false
this.colorForm.outImage = null
this.fileList = []
this.changeBackgroundStyle()
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
onChange(file, fileList) {
var _this = this
_this.uploadDisabled = true
const reader = new FileReader()
reader.onload = function() {
_this.colorForm.outImage = reader.result
_this.changeBackgroundStyle()
}
this.$store.state.styleChangeTimes++
reader.readAsDataURL(file.raw)
},
upload(file) {
// console.log('this is upload')
},
openBoardDialog() {
// console.log('this is upload')
}
}
}
</script>
<style scoped>
.shape-item{
padding: 6px;
border: none;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.form-item-slider>>>.el-form-item__label{
font-size: 12px;
line-height: 38px;
}
.form-item>>>.el-form-item__label{
font-size: 12px;
}
.el-select-dropdown__item{
padding: 0 20px;
}
.shape-item{
padding: 6px;
border: none;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.form-item-slider>>>.el-form-item__label{
font-size: 12px;
line-height: 38px;
}
.form-item>>>.el-form-item__label{
font-size: 12px;
}
.el-select-dropdown__item{
padding: 0 20px;
}
span{
font-size: 12px
}
.el-form-item{
margin-bottom: 6px;
}
.color-picker-style{
cursor: pointer;
z-index: 1003;
}
.avatar-uploader>>>.el-upload {
width: 100px;
height: 60px;
line-height: 70px;
}
.avatar-uploader>>>.el-upload-list li{
width: 100px !important;
height: 60px !important;
}
.disabled>>>.el-upload--picture-card {
display: none;
}
.shape-item{
padding: 6px;
border: none;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.form-item-slider>>>.el-form-item__label{
font-size: 12px;
line-height: 38px;
}
.form-item>>>.el-form-item__label{
font-size: 12px;
}
.el-select-dropdown__item{
padding: 0 20px;
}
span{
font-size: 12px
}
.el-form-item{
margin-bottom: 6px;
}
.label-item{
font-size: 12px;
font-weight: bold;
}
.col-label-item{
text-align: right;
padding-right: 10px;
}
.color-picker-style{
cursor: pointer;
z-index: 1003;
}
</style>

View File

@ -161,7 +161,7 @@ export default {
this.title_class.fontWeight = customStyle.text.isBolder ? 'bold' : 'normal'
}
if (customStyle.background) {
// this.bg_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
this.bg_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
}
}
},

View File

@ -1,5 +1,5 @@
<template>
<div ref="tableContainer" style="padding: 8px;width: 100%;height: 100%;overflow: hidden;">
<div ref="tableContainer" :style="bg_class" style="padding: 8px;width: 100%;height: 100%;overflow: hidden;">
<el-row style="height: 100%;">
<p v-show="title_show" ref="title" :style="title_class">{{ chart.title }}</p>
<ux-grid
@ -124,6 +124,8 @@ export default {
computed: {
bg_class() {
return {
background: hexColorToRGBA('#ffffff', 0),
borderRadius: this.borderRadius
}
}
},

View File

@ -56,6 +56,7 @@
<div class="padding-lr field-height">
<span>{{ $t('chart.dimension') }}</span>
<draggable
v-if="table && hasDataPermission('use',table.privileges)"
v-model="dimensionData"
:options="{group:{name: 'drag',pull:'clone'},sort: true}"
animation="300"
@ -81,6 +82,7 @@
<div class="padding-lr field-height">
<span>{{ $t('chart.quota') }}</span>
<draggable
v-if="table && hasDataPermission('use',table.privileges)"
v-model="quotaData"
:options="{group:{name: 'drag',pull:'clone'},sort: true}"
animation="300"
@ -808,8 +810,8 @@
</el-tabs>
<el-col style="height: 100%;min-width: 500px;border-top: 1px solid #E6E6E6;">
<el-row :style="componentBackGround" class="padding-lr">
<div ref="imageWrapper" style="height: 100%;">
<el-row style="width: 100%;height: 100%;" class="padding-lr">
<div ref="imageWrapper" style="height: 100%">
<plugin-com
v-if="httpRequest.status && chart.type && view.isPlugin"
ref="dynamicChart"
@ -1047,7 +1049,6 @@ import { compareItem } from '@/views/chart/chart/compare'
import ChartComponentS2 from '@/views/chart/components/ChartComponentS2'
import DimensionExtItem from '@/views/chart/components/drag-item/DimensionExtItem'
import PluginCom from '@/views/system/plugin/PluginCom'
import { hexColorToRGBA } from '@/views/chart/chart/util'
export default {
name: 'ChartEdit',
components: {
@ -1190,32 +1191,6 @@ export default {
computed: {
chartType() {
return this.chart.type
},
//
componentBackGround() {
const customStyle = JSON.parse(JSON.stringify(this.view.customStyle))
let style = {
height: '100%',
width: '100%',
backgroundSize: '100% 100% !important'
}
debugger
if (customStyle && customStyle.background) {
style['borderRadius'] = customStyle.background.borderRadius + 'px'
if (customStyle.background.backgroundType === 'outImage' && typeof (customStyle.background.outImage) === 'string') {
style = {
background: `url(${customStyle.background.outImage}) no-repeat`,
...style
}
} else if (!customStyle.background.backgroundType || customStyle.background.backgroundType === 'color') {
style = {
background: hexColorToRGBA(customStyle.background.color, customStyle.background.alpha),
...style
}
}
}
return style
}
},
watch: {
@ -1243,7 +1218,6 @@ export default {
// this.initAreas()
},
mounted() {
debugger
this.bindPluginEvent()
// this.get(this.$store.state.chart.viewId);
this.getData(this.param.id)
@ -1542,7 +1516,6 @@ export default {
this.closeChangeChart()
//
if (this.$route.path.indexOf('panel') > -1) {
this.$store.commit('recordSnapshot')
bus.$emit('PanelSwitchComponent', { name: 'PanelEdit' })
}
this.$success(this.$t('commons.save_success'))
@ -1611,6 +1584,10 @@ export default {
this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {}
this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {}
this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {}
// echart
this.chart = response.data
this.data = response.data.data
}).catch(err => {
this.httpRequest.status = err.response.data.success
this.httpRequest.msg = err.response.data.message

View File

@ -232,7 +232,11 @@ import SubjectSetting from '../SubjectSetting'
import bus from '@/utils/bus'
import Editor from '@/components/canvas/components/Editor/index'
import { deepCopy, panelInit } from '@/components/canvas/utils/utils'
import componentList, { BASE_MOBILE_STYLE, HYPERLINKS } from '@/components/canvas/custom-component/component-list' //
import componentList, {
BASE_MOBILE_STYLE,
COMMON_BACKGROUND,
HYPERLINKS
} from '@/components/canvas/custom-component/component-list' //
import { mapState } from 'vuex'
import { uuid } from 'vue-uuid'
import Toolbar from '@/components/canvas/components/Toolbar'
@ -615,6 +619,8 @@ export default {
this.currentFilterCom.id = newComponentId
this.currentFilterCom.auxiliaryMatrix = this.canvasStyleData.auxiliaryMatrix
this.currentFilterCom.mobileStyle = BASE_MOBILE_STYLE
this.currentFilterCom.commonBackground || deepCopy(COMMON_BACKGROUND)
if (this.currentWidget.filterDialog) {
this.show = false
@ -643,6 +649,8 @@ export default {
component.id = newComponentId
//
component.auxiliaryMatrix = this.canvasStyleData.auxiliaryMatrix
//
component.commonBackground || deepCopy(COMMON_BACKGROUND)
//
if (componentInfo.type === 'view') {

View File

@ -1,18 +1,18 @@
<template>
<div>
<async-component
v-if="showAsync"
:ref="refId"
:url="url"
:obj="obj"
@execute-axios="executeAxios"
@on-add-languanges="addLanguages"
@plugin-call-back="pluginCallBack"
/>
<div v-else>
<h1>未知组件无法展示</h1>
</div>
<async-component
v-if="showAsync"
:ref="refId"
:url="url"
:obj="obj"
@execute-axios="executeAxios"
@on-add-languanges="addLanguages"
@plugin-call-back="pluginCallBack"
/>
<div v-else>
<h1>未知组件无法展示</h1>
</div>
</template>
<script>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120101,"name":"和平区","center":[117.195907,39.118327],"centroid":[117.196207,39.118993],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.222506,39.117484],[117.222299,39.117706],[117.219749,39.11979],[117.217625,39.121933],[117.215465,39.124525],[117.21414,39.126429],[117.21362,39.128244],[117.213457,39.130464],[117.213257,39.132029],[117.212797,39.132888],[117.211853,39.13348],[117.211038,39.133673],[117.208454,39.133394],[117.206452,39.132798],[117.202482,39.130902],[117.200039,39.130451],[117.198956,39.1305],[117.198194,39.13081],[117.196989,39.131463],[117.196034,39.132246],[117.194762,39.133612],[117.194206,39.134669],[117.193748,39.13457],[117.193202,39.134467],[117.192316,39.134329],[117.19224,39.134377],[117.19205,39.135337],[117.191868,39.135871],[117.191634,39.136081],[117.191442,39.13615],[117.190395,39.136283],[117.190395,39.136737],[117.190355,39.136844],[117.184923,39.136998],[117.181168,39.13709],[117.181003,39.133829],[117.180872,39.132361],[117.180681,39.130134],[117.180491,39.127971],[117.180301,39.126091],[117.180222,39.125279],[117.180014,39.123282],[117.179953,39.122756],[117.179901,39.122444],[117.179806,39.121257],[117.179744,39.119716],[117.179676,39.117129],[117.179659,39.114404],[117.179546,39.110206],[117.179535,39.109498],[117.179422,39.104469],[117.179292,39.10199],[117.179846,39.101975],[117.180722,39.101857],[117.181527,39.101777],[117.182402,39.101671],[117.184603,39.101654],[117.185314,39.101527],[117.186535,39.101294],[117.187956,39.101044],[117.188804,39.100943],[117.190052,39.100954],[117.190842,39.101021],[117.191568,39.101099],[117.194109,39.101441],[117.194645,39.101488],[117.195295,39.10153],[117.196291,39.101576],[117.196595,39.101624],[117.196508,39.101832],[117.19637,39.102053],[117.196187,39.102198],[117.196319,39.102307],[117.197413,39.102917],[117.197651,39.103116],[117.198189,39.103349],[117.198756,39.103794],[117.198784,39.103791],[117.199144,39.104065],[117.199147,39.104101],[117.200182,39.104914],[117.201491,39.105502],[117.202341,39.106439],[117.202991,39.107033],[117.204364,39.107998],[117.205739,39.108917],[117.207065,39.10918],[117.207619,39.109258],[117.208114,39.109374],[117.209631,39.110284],[117.210588,39.110914],[117.210756,39.110994],[117.211382,39.111424],[117.212423,39.111813],[117.213072,39.11199],[117.213118,39.11204],[117.213185,39.112207],[117.213264,39.112711],[117.213255,39.1131],[117.213273,39.113643],[117.213297,39.113694],[117.213568,39.113866],[117.215014,39.114402],[117.215803,39.114652],[117.216688,39.114779],[117.218171,39.115479],[117.219024,39.115862],[117.219893,39.116287],[117.22111,39.116822],[117.221674,39.117116],[117.222506,39.117484]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120102,"name":"河东区","center":[117.226568,39.122125],"centroid":[117.256682,39.122406],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.260629,39.159009],[117.259942,39.158922],[117.259005,39.158866],[117.258248,39.158782],[117.256095,39.15867],[117.254071,39.158491],[117.253333,39.158409],[117.252543,39.158409],[117.251449,39.158309],[117.250668,39.158254],[117.249209,39.158229],[117.248723,39.158397],[117.248793,39.157894],[117.248784,39.15771],[117.248982,39.155509],[117.249286,39.154272],[117.249572,39.152134],[117.249928,39.149546],[117.249195,39.149575],[117.248607,39.149578],[117.243521,39.1497],[117.240797,39.149979],[117.234888,39.149905],[117.229545,39.149832],[117.229145,39.149784],[117.228772,39.14968],[117.228365,39.149519],[117.220923,39.144813],[117.21631,39.149808],[117.215218,39.151407],[117.215339,39.150508],[117.215312,39.14997],[117.21521,39.14951],[117.215072,39.149262],[117.214741,39.148786],[117.214221,39.148318],[117.213648,39.14797],[117.211759,39.147275],[117.207832,39.145906],[117.206402,39.145349],[117.205743,39.144917],[117.204989,39.144225],[117.204625,39.143648],[117.203845,39.142126],[117.20355,39.141284],[117.203515,39.140685],[117.20362,39.140155],[117.203896,39.139522],[117.204208,39.139229],[117.206227,39.137593],[117.207709,39.136895],[117.211107,39.135673],[117.210275,39.134233],[117.209998,39.133913],[117.209773,39.133536],[117.211038,39.133673],[117.211852,39.13348],[117.212797,39.132887],[117.213257,39.132028],[117.213456,39.130464],[117.213621,39.128244],[117.214141,39.126429],[117.215465,39.124525],[117.217625,39.121933],[117.219749,39.11979],[117.222299,39.117706],[117.22457,39.115306],[117.227606,39.111742],[117.230397,39.108344],[117.241347,39.09861],[117.242075,39.097478],[117.243454,39.093065],[117.245023,39.089246],[117.24604,39.087921],[117.246518,39.087499],[117.248558,39.086222],[117.252819,39.084064],[117.257067,39.082104],[117.260148,39.080914],[117.265491,39.079926],[117.266977,39.079796],[117.266865,39.080504],[117.266917,39.08103],[117.267108,39.082536],[117.267361,39.084209],[117.267873,39.08529],[117.269307,39.086807],[117.271176,39.088962],[117.272332,39.09053],[117.274235,39.088794],[117.275339,39.089929],[117.276339,39.090772],[117.27799,39.090707],[117.278843,39.090591],[117.278782,39.08938],[117.278843,39.088163],[117.279878,39.088542],[117.279945,39.086884],[117.285023,39.087132],[117.286093,39.087154],[117.286137,39.087525],[117.286268,39.089092],[117.28658,39.089072],[117.292922,39.087651],[117.298183,39.086475],[117.297183,39.083746],[117.298261,39.083438],[117.297991,39.082671],[117.298401,39.082548],[117.30011,39.082114],[117.301949,39.086269],[117.304819,39.085572],[117.306128,39.087938],[117.306911,39.089376],[117.307634,39.092087],[117.306907,39.092241],[117.306847,39.092418],[117.30808,39.096358],[117.306512,39.09666],[117.306459,39.097831],[117.309654,39.100946],[117.302911,39.102564],[117.294688,39.104116],[117.275914,39.108052],[117.27582,39.108069],[117.27523,39.108951],[117.274403,39.111291],[117.273953,39.112606],[117.272762,39.116906],[117.272336,39.117965],[117.271866,39.119498],[117.271276,39.121515],[117.269869,39.126367],[117.269939,39.127109],[117.270294,39.127857],[117.271103,39.128833],[117.271762,39.129324],[117.27624,39.12981],[117.281317,39.130449],[117.283326,39.130889],[117.286647,39.13174],[117.279937,39.147354],[117.284907,39.148224],[117.293404,39.15062],[117.290831,39.155546],[117.290315,39.157142],[117.287398,39.158474],[117.281389,39.160737],[117.27684,39.162999],[117.27242,39.161728],[117.271211,39.161345],[117.267301,39.160431],[117.264599,39.159687],[117.262382,39.159096],[117.261654,39.159018],[117.260629,39.159009]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120103,"name":"河西区","center":[117.217536,39.101897],"centroid":[117.232522,39.072613],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.26729,39.039449],[117.267069,39.03996],[117.266953,39.040048],[117.266505,39.041231],[117.269791,39.041989],[117.272479,39.042778],[117.272532,39.042953],[117.272261,39.043423],[117.270475,39.044921],[117.268985,39.047166],[117.267691,39.050364],[117.278046,39.05354],[117.279183,39.051464],[117.280462,39.048924],[117.286822,39.051028],[117.284402,39.055491],[117.283094,39.058995],[117.280571,39.058304],[117.280475,39.059302],[117.282943,39.059446],[117.285537,39.059778],[117.288004,39.060122],[117.288473,39.0602],[117.287952,39.062467],[117.287621,39.063826],[117.2871,39.066071],[117.286543,39.067156],[117.285891,39.06894],[117.285839,39.069735],[117.285995,39.070468],[117.286205,39.07076],[117.286674,39.071286],[117.288701,39.072478],[117.292076,39.075414],[117.292423,39.07587],[117.29245,39.077424],[117.284945,39.077747],[117.277807,39.078765],[117.274304,39.07935],[117.267986,39.079705],[117.265492,39.079926],[117.260149,39.080914],[117.257067,39.082104],[117.25282,39.084064],[117.248557,39.086223],[117.246518,39.0875],[117.24604,39.087921],[117.245023,39.089246],[117.243454,39.093064],[117.242074,39.097477],[117.241346,39.098611],[117.230398,39.108343],[117.227605,39.111742],[117.224571,39.115306],[117.222506,39.117484],[117.221674,39.117117],[117.22111,39.116822],[117.219892,39.116287],[117.219024,39.115861],[117.218171,39.115478],[117.216687,39.114778],[117.215804,39.114652],[117.215013,39.114402],[117.213568,39.113866],[117.213273,39.113643],[117.213264,39.112711],[117.213184,39.112207],[117.213072,39.11199],[117.212422,39.111813],[117.211382,39.111424],[117.210756,39.110994],[117.210588,39.110914],[117.209631,39.110284],[117.208114,39.109373],[117.207618,39.109258],[117.207065,39.10918],[117.205738,39.108917],[117.204364,39.107998],[117.202991,39.107033],[117.202341,39.106439],[117.201491,39.105502],[117.200182,39.104914],[117.199147,39.104101],[117.199145,39.104065],[117.198756,39.103794],[117.198189,39.103349],[117.19765,39.103116],[117.197413,39.102918],[117.196318,39.102307],[117.196188,39.102198],[117.196369,39.102054],[117.196595,39.101623],[117.196291,39.101576],[117.195295,39.10153],[117.194108,39.10144],[117.191568,39.101099],[117.190842,39.101021],[117.190051,39.100953],[117.188804,39.100943],[117.187956,39.101044],[117.186535,39.101293],[117.185314,39.101527],[117.184603,39.101654],[117.182402,39.101671],[117.181528,39.101777],[117.180722,39.101857],[117.179845,39.101975],[117.179292,39.10199],[117.179248,39.10103],[117.179232,39.09918],[117.17923,39.098012],[117.179213,39.097483],[117.179065,39.097291],[117.179082,39.09605],[117.17911,39.095324],[117.179239,39.094067],[117.179334,39.09326],[117.179394,39.092613],[117.179463,39.092096],[117.179688,39.089798],[117.179723,39.089329],[117.17993,39.088048],[117.18019,39.086771],[117.180658,39.084751],[117.181082,39.083112],[117.181541,39.081277],[117.18213,39.078706],[117.182452,39.077016],[117.182728,39.075623],[117.183066,39.074205],[117.183465,39.072876],[117.18382,39.072002],[117.184096,39.07148],[117.184451,39.070993],[117.185456,39.069719],[117.185863,39.069314],[117.187007,39.068465],[117.187491,39.067999],[117.187864,39.067682],[117.188532,39.066925],[117.189005,39.067091],[117.192075,39.068052],[117.196286,39.069329],[117.203879,39.071719],[117.204902,39.07057],[117.208524,39.066513],[117.212477,39.062056],[117.214145,39.060193],[117.213847,39.06007],[117.213334,39.059961],[117.212746,39.06002],[117.211884,39.060401],[117.21158,39.060472],[117.211352,39.060467],[117.211204,39.060356],[117.211172,39.060245],[117.211152,39.05842],[117.211184,39.058155],[117.211444,39.057766],[117.211747,39.057592],[117.212668,39.057234],[117.213089,39.057137],[117.215178,39.057181],[117.216943,39.057065],[117.217713,39.056218],[117.217784,39.053223],[117.217725,39.034319],[117.218849,39.034103],[117.221346,39.033657],[117.222965,39.033469],[117.229496,39.03307],[117.232907,39.033152],[117.233742,39.033259],[117.234043,39.033194],[117.234148,39.033362],[117.234228,39.033205],[117.23457,39.03337],[117.243159,39.034847],[117.250115,39.036267],[117.251907,39.036993],[117.253,39.037226],[117.2542,39.03716],[117.259906,39.038062],[117.26729,39.039449]]]]}}]}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120105,"name":"河北区","center":[117.201569,39.156632],"centroid":[117.213791,39.167182],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.233479,39.193053],[117.23228,39.192072],[117.229662,39.18999],[117.224709,39.185531],[117.22398,39.184968],[117.223234,39.185771],[117.221941,39.184696],[117.219982,39.186448],[117.216116,39.191282],[117.213809,39.189857],[117.212702,39.190727],[117.211886,39.191553],[117.211827,39.191717],[117.211723,39.191754],[117.21077,39.192926],[117.210712,39.192959],[117.209953,39.192613],[117.206701,39.190881],[117.204246,39.189603],[117.203495,39.189196],[117.202718,39.188822],[117.199953,39.187383],[117.199165,39.18694],[117.197264,39.186103],[117.191919,39.191924],[117.18996,39.190838],[117.1886,39.190234],[117.183739,39.189147],[117.183512,39.189103],[117.182656,39.190352],[117.181772,39.190328],[117.180478,39.189418],[117.180482,39.189301],[117.1812,39.188383],[117.179528,39.187974],[117.17712,39.187427],[117.17368,39.186699],[117.171782,39.186309],[117.169789,39.185803],[117.169373,39.185665],[117.168905,39.185427],[117.168636,39.185172],[117.168056,39.184512],[117.167553,39.184001],[117.170248,39.182381],[117.171149,39.181823],[117.172093,39.181508],[117.173081,39.181423],[117.176009,39.181957],[117.176773,39.182074],[117.177223,39.182042],[117.177664,39.181954],[117.178063,39.181671],[117.17848,39.180948],[117.178738,39.179954],[117.178808,39.178512],[117.178677,39.176858],[117.178304,39.174236],[117.178408,39.173388],[117.178633,39.172575],[117.179785,39.170172],[117.179941,39.169707],[117.180028,39.169182],[117.180044,39.168413],[117.179603,39.167293],[117.178842,39.1666],[117.177168,39.165616],[117.176129,39.165024],[117.175825,39.164768],[117.175721,39.164374],[117.175903,39.163622],[117.176622,39.162574],[117.177176,39.162056],[117.178893,39.160924],[117.18195,39.15909],[117.18492,39.156656],[117.186481,39.155099],[117.189167,39.151941],[117.190466,39.150332],[117.193082,39.148381],[117.193836,39.147643],[117.194442,39.146993],[117.194737,39.146454],[117.194928,39.145199],[117.194356,39.140028],[117.194008,39.136441],[117.194008,39.135251],[117.194207,39.134669],[117.194761,39.133612],[117.196035,39.132246],[117.19699,39.131463],[117.198193,39.13081],[117.198956,39.1305],[117.200039,39.130451],[117.202482,39.130902],[117.206452,39.132798],[117.208455,39.133394],[117.209773,39.133536],[117.209998,39.133914],[117.210275,39.134234],[117.211107,39.135673],[117.207708,39.136896],[117.206226,39.137593],[117.204209,39.139229],[117.203896,39.139522],[117.203619,39.140155],[117.203515,39.140685],[117.20355,39.141284],[117.203845,39.142126],[117.204626,39.143648],[117.204989,39.144226],[117.205742,39.144916],[117.206402,39.145349],[117.207832,39.145907],[117.211759,39.147274],[117.213648,39.14797],[117.214221,39.148318],[117.214741,39.148785],[117.215072,39.149262],[117.215209,39.14951],[117.215313,39.14997],[117.21534,39.150508],[117.215218,39.151408],[117.21631,39.149808],[117.220922,39.144812],[117.221189,39.144979],[117.228365,39.14952],[117.228772,39.14968],[117.229145,39.149784],[117.229545,39.149832],[117.234887,39.149905],[117.240796,39.149979],[117.243521,39.149699],[117.248607,39.149578],[117.249194,39.149575],[117.249928,39.149546],[117.249572,39.152134],[117.249285,39.154271],[117.248983,39.155509],[117.248784,39.15771],[117.248793,39.157894],[117.248723,39.158397],[117.249209,39.158228],[117.250669,39.158253],[117.251449,39.15831],[117.252543,39.158409],[117.253333,39.158409],[117.25407,39.158492],[117.256094,39.15867],[117.258248,39.158783],[117.259004,39.158866],[117.259942,39.158922],[117.260629,39.159009],[117.260456,39.163268],[117.260534,39.167551],[117.260421,39.16809],[117.260266,39.168398],[117.260056,39.168711],[117.258658,39.169958],[117.256905,39.169032],[117.2564,39.168597],[117.25606,39.16825],[117.255439,39.168163],[117.255029,39.16814],[117.253907,39.168111],[117.251703,39.168094],[117.251059,39.169649],[117.250782,39.170908],[117.246736,39.170414],[117.246519,39.171378],[117.242111,39.170925],[117.240956,39.170751],[117.241841,39.17129],[117.242699,39.171914],[117.243691,39.172739],[117.245184,39.17418],[117.247553,39.176452],[117.249966,39.178452],[117.249616,39.178696],[117.249352,39.178819],[117.24829,39.179612],[117.247268,39.180572],[117.24586,39.181871],[117.244932,39.182763],[117.244621,39.183106],[117.244481,39.183196],[117.242927,39.184603],[117.241616,39.18577],[117.240353,39.186874],[117.239597,39.187429],[117.238136,39.188721],[117.237044,39.189841],[117.235075,39.191679],[117.233862,39.192696],[117.233479,39.193053]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120106,"name":"红桥区","center":[117.163301,39.175066],"centroid":[117.155648,39.164723],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.194442,39.146993],[117.193836,39.147643],[117.193082,39.148381],[117.190466,39.150332],[117.189166,39.151941],[117.186481,39.155099],[117.18492,39.156656],[117.18195,39.15909],[117.178893,39.160924],[117.177176,39.162056],[117.176622,39.162574],[117.175903,39.163622],[117.17572,39.164374],[117.175825,39.164768],[117.17613,39.165024],[117.177168,39.165616],[117.178842,39.1666],[117.179603,39.167293],[117.180044,39.168414],[117.180028,39.169182],[117.179941,39.169707],[117.179785,39.170172],[117.178634,39.172575],[117.178408,39.173389],[117.178303,39.174236],[117.178676,39.176858],[117.178808,39.178512],[117.178738,39.179954],[117.17848,39.180948],[117.178063,39.181671],[117.177664,39.181954],[117.177223,39.182042],[117.176772,39.182073],[117.176009,39.181957],[117.173082,39.181424],[117.172093,39.181508],[117.171149,39.181823],[117.170247,39.182381],[117.167553,39.184001],[117.167077,39.184249],[117.163931,39.185753],[117.162571,39.186694],[117.161948,39.187277],[117.161601,39.187773],[117.161106,39.189428],[117.160657,39.189989],[117.16004,39.190237],[117.159296,39.190348],[117.154963,39.189951],[117.148566,39.189097],[117.147743,39.189068],[117.146867,39.189156],[117.146051,39.189357],[117.145489,39.189623],[117.145124,39.189984],[117.144786,39.190401],[117.144024,39.191901],[117.143252,39.191676],[117.142316,39.19136],[117.141762,39.191126],[117.139247,39.18961],[117.138015,39.188573],[117.136775,39.187824],[117.136057,39.18718],[117.135815,39.187022],[117.135231,39.186462],[117.134311,39.185351],[117.133228,39.183216],[117.131135,39.178866],[117.130807,39.178016],[117.130633,39.177374],[117.130503,39.176692],[117.130451,39.175536],[117.130365,39.173951],[117.129895,39.171906],[117.129652,39.171038],[117.129392,39.170165],[117.129157,39.169435],[117.128905,39.168585],[117.128612,39.167398],[117.127892,39.164654],[117.127413,39.162962],[117.127213,39.162168],[117.12698,39.161325],[117.126667,39.160395],[117.126433,39.159458],[117.126318,39.158924],[117.126285,39.158273],[117.126433,39.157812],[117.126658,39.156891],[117.126865,39.156123],[117.127239,39.154889],[117.127594,39.154107],[117.127941,39.153169],[117.128279,39.152526],[117.128479,39.152243],[117.128965,39.152294],[117.129797,39.152086],[117.130673,39.151476],[117.131541,39.150494],[117.133648,39.147942],[117.134273,39.147338],[117.134984,39.146915],[117.135807,39.146642],[117.136761,39.146467],[117.140022,39.147105],[117.142909,39.148066],[117.14376,39.148316],[117.144321,39.148577],[117.145414,39.147697],[117.145537,39.147415],[117.145647,39.146333],[117.145527,39.146081],[117.144729,39.145453],[117.144018,39.144368],[117.144034,39.144173],[117.144122,39.144068],[117.145595,39.144053],[117.147919,39.143364],[117.150545,39.143073],[117.151915,39.142723],[117.152366,39.14257],[117.152626,39.142531],[117.154177,39.142385],[117.155251,39.142314],[117.15617,39.142212],[117.15721,39.142002],[117.15773,39.141554],[117.158023,39.14118],[117.159073,39.141496],[117.159567,39.141577],[117.160234,39.141589],[117.161665,39.141595],[117.165096,39.141663],[117.171836,39.141937],[117.171681,39.146467],[117.174047,39.146319],[117.180619,39.146148],[117.180991,39.146073],[117.181273,39.146132],[117.185538,39.145935],[117.189027,39.145866],[117.189946,39.14589],[117.190587,39.145967],[117.192684,39.146449],[117.193559,39.146661],[117.194442,39.146993]]],[[[117.13036,39.189872],[117.133173,39.191312],[117.133323,39.191036],[117.135416,39.192016],[117.136057,39.192307],[117.135855,39.192685],[117.136416,39.192848],[117.140771,39.193229],[117.1406,39.194444],[117.138788,39.196467],[117.140022,39.19715],[117.140366,39.197325],[117.140805,39.197511],[117.141212,39.197742],[117.139547,39.200147],[117.138644,39.199849],[117.138366,39.200356],[117.138192,39.20103],[117.135909,39.200032],[117.134964,39.201172],[117.133827,39.20266],[117.132851,39.202302],[117.132036,39.203466],[117.125617,39.200879],[117.126304,39.199891],[117.12566,39.1996],[117.128575,39.195657],[117.125945,39.194942],[117.127223,39.193163],[117.127702,39.192706],[117.128705,39.191432],[117.129263,39.190684],[117.130004,39.190102],[117.13036,39.189872]]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130102,"name":"长安区","center":[114.548151,38.047501],"centroid":[114.583482,38.080599],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.536771,38.127953],[114.533376,38.129304],[114.529779,38.130409],[114.526714,38.13107],[114.523427,38.131471],[114.522627,38.131659],[114.521273,38.132405],[114.520616,38.132386],[114.518814,38.131541],[114.517501,38.131379],[114.51566,38.131367],[114.512934,38.131608],[114.511321,38.131619],[114.509717,38.131817],[114.507313,38.131759],[114.504809,38.131352],[114.503623,38.130868],[114.48411,38.114064],[114.489056,38.113343],[114.487527,38.112643],[114.486186,38.111775],[114.48578,38.111707],[114.485312,38.106728],[114.485019,38.106623],[114.480867,38.10667],[114.480331,38.106472],[114.480168,38.106238],[114.480202,38.10597],[114.482208,38.102943],[114.489356,38.102366],[114.490826,38.102393],[114.492167,38.102724],[114.495132,38.104546],[114.494882,38.101639],[114.495116,38.101639],[114.494725,38.096923],[114.494932,38.091932],[114.493357,38.082764],[114.502141,38.081578],[114.498717,38.072558],[114.498215,38.07256],[114.494323,38.055938],[114.494521,38.05573],[114.493398,38.049757],[114.492583,38.043611],[114.492735,38.04339],[114.493798,38.043457],[114.498808,38.043314],[114.501255,38.04339],[114.502175,38.043042],[114.502846,38.042843],[114.503207,38.042636],[114.503886,38.042517],[114.503932,38.042437],[114.504847,38.04251],[114.505079,38.042399],[114.50524,38.042556],[114.505999,38.042577],[114.506199,38.042737],[114.506745,38.042758],[114.507301,38.042619],[114.507822,38.042758],[114.507753,38.043003],[114.508262,38.043016],[114.508392,38.042745],[114.509301,38.042652],[114.51031,38.042695],[114.510314,38.042353],[114.510689,38.04215],[114.511825,38.042119],[114.511868,38.035595],[114.517726,38.035701],[114.522865,38.035754],[114.524301,38.035781],[114.526235,38.035855],[114.531931,38.035958],[114.53277,38.035942],[114.535073,38.036017],[114.591154,38.0371],[114.591313,38.055922],[114.591174,38.058887],[114.609944,38.054698],[114.67704,38.041433],[114.676597,38.04236],[114.67622,38.042784],[114.676406,38.046182],[114.678313,38.045975],[114.678928,38.046291],[114.679019,38.051584],[114.679355,38.05158],[114.679274,38.053839],[114.681716,38.059273],[114.683645,38.058276],[114.684138,38.060488],[114.687574,38.060046],[114.687724,38.061481],[114.687683,38.06239],[114.689744,38.064666],[114.691191,38.065332],[114.693047,38.065169],[114.694547,38.063536],[114.695378,38.063386],[114.699366,38.070146],[114.705096,38.078554],[114.707378,38.091356],[114.707253,38.091554],[114.705417,38.091739],[114.705462,38.0939],[114.705117,38.094168],[114.703794,38.094157],[114.703781,38.097203],[114.693852,38.097153],[114.69342,38.102353],[114.680921,38.101245],[114.673173,38.099604],[114.663798,38.10284],[114.656871,38.103098],[114.65334,38.104175],[114.647498,38.105929],[114.641297,38.10807],[114.633958,38.109545],[114.621039,38.110268],[114.611199,38.109227],[114.599986,38.111299],[114.596089,38.113045],[114.592133,38.115598],[114.589925,38.116472],[114.588441,38.116538],[114.582674,38.115735],[114.577319,38.115846],[114.571416,38.116388],[114.566331,38.117653],[114.561623,38.120305],[114.556227,38.121699],[114.550674,38.122497],[114.547463,38.123208],[114.544305,38.124575],[114.541729,38.126044],[114.539781,38.126687],[114.536771,38.127953]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130104,"name":"桥西区","center":[114.462931,38.028383],"centroid":[114.449351,38.025685],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.376652,38.073279],[114.377209,38.07012],[114.378591,38.067296],[114.380319,38.065448],[114.381247,38.063486],[114.382845,38.063403],[114.382894,38.062493],[114.385204,38.062215],[114.385347,38.056901],[114.385246,38.056528],[114.384592,38.056534],[114.388193,38.052608],[114.386613,38.052655],[114.386632,38.048601],[114.384258,38.048315],[114.384305,38.045992],[114.38433,38.045884],[114.38628,38.042742],[114.389019,38.041083],[114.392771,38.041056],[114.39332,38.039724],[114.393333,38.038643],[114.397208,38.038449],[114.397645,38.037592],[114.397725,38.036246],[114.398335,38.035864],[114.398421,38.034413],[114.395963,38.027892],[114.395845,38.024808],[114.398187,38.022852],[114.399195,38.02241],[114.402154,38.020863],[114.404275,38.02051],[114.405612,38.020787],[114.407693,38.02156],[114.408686,38.021627],[114.409142,38.021437],[114.409852,38.020665],[114.411035,38.016444],[114.41158,38.015359],[114.412473,38.014605],[114.414956,38.014434],[114.417384,38.014752],[114.419357,38.012109],[114.426236,38.012464],[114.428007,38.011203],[114.428194,38.010035],[114.427846,38.005767],[114.425836,38.00411],[114.425204,38.004074],[114.425981,38.003039],[114.42486,38.002975],[114.424742,38.002643],[114.424913,38.001776],[114.425821,38.00114],[114.425775,37.998899],[114.427485,37.996154],[114.427899,37.996265],[114.427692,37.997502],[114.4286,37.998018],[114.428827,37.995139],[114.431087,37.995117],[114.431559,37.994722],[114.431519,37.992657],[114.432534,37.992645],[114.432486,37.994286],[114.433338,37.994292],[114.434231,37.994515],[114.437906,37.994779],[114.438001,37.993959],[114.451331,37.994549],[114.451483,37.994046],[114.451482,37.992147],[114.459957,37.990827],[114.460498,37.990234],[114.461136,37.98421],[114.462785,37.98428],[114.463343,37.981185],[114.459754,37.979462],[114.455303,37.979447],[114.45549,37.97931],[114.458266,37.979232],[114.458131,37.976926],[114.461788,37.974222],[114.464227,37.974285],[114.468329,37.973975],[114.468668,37.972421],[114.470157,37.972268],[114.472917,37.97238],[114.472273,37.97343],[114.474582,37.973868],[114.474985,37.976623],[114.478645,37.976934],[114.481619,37.976486],[114.482098,37.977205],[114.484768,37.977365],[114.485772,37.975903],[114.490425,37.974015],[114.490082,37.975861],[114.496233,37.976757],[114.492508,37.998656],[114.493175,37.998787],[114.492372,38.001429],[114.492214,38.002106],[114.493825,38.002725],[114.494421,38.003085],[114.495331,38.003979],[114.49808,38.006755],[114.49913,38.007739],[114.500143,38.008779],[114.512256,38.020849],[114.51219,38.021645],[114.512217,38.022298],[114.51211,38.026404],[114.512058,38.027335],[114.512064,38.028252],[114.512119,38.028271],[114.512022,38.029784],[114.511868,38.035595],[114.511825,38.04212],[114.510689,38.04215],[114.510314,38.042353],[114.510309,38.042695],[114.509301,38.042652],[114.508391,38.042745],[114.508263,38.043017],[114.507753,38.043002],[114.507822,38.042757],[114.507303,38.042619],[114.506744,38.042757],[114.506199,38.042738],[114.505999,38.042577],[114.50524,38.042556],[114.505079,38.0424],[114.504643,38.042526],[114.50393,38.042438],[114.503887,38.042518],[114.503206,38.042636],[114.502845,38.042843],[114.502177,38.043043],[114.501255,38.04339],[114.498808,38.043314],[114.493798,38.043457],[114.492736,38.04339],[114.492584,38.043611],[114.490327,38.043459],[114.489045,38.043407],[114.484353,38.043448],[114.484467,38.045014],[114.481007,38.045069],[114.477263,38.044879],[114.477263,38.045663],[114.469547,38.045509],[114.469523,38.047826],[114.469364,38.047896],[114.462083,38.048234],[114.454392,38.048492],[114.454126,38.048537],[114.451399,38.048629],[114.451159,38.048597],[114.44968,38.048688],[114.44885,38.048673],[114.446036,38.048765],[114.439525,38.049077],[114.437997,38.049242],[114.436736,38.049211],[114.435851,38.049253],[114.434839,38.052581],[114.434751,38.053181],[114.434751,38.054266],[114.43489,38.055516],[114.436641,38.063706],[114.432907,38.064631],[114.426511,38.065826],[114.405197,38.069501],[114.397429,38.070835],[114.386512,38.072704],[114.376652,38.073279]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130105,"name":"新华区","center":[114.465974,38.067142],"centroid":[114.447636,38.099975],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.492584,38.043611],[114.493398,38.049756],[114.494521,38.05573],[114.494323,38.055938],[114.498215,38.07256],[114.498717,38.072558],[114.502141,38.081577],[114.493357,38.082763],[114.494932,38.091932],[114.494725,38.096923],[114.495115,38.101638],[114.494882,38.101638],[114.495132,38.104546],[114.492166,38.102723],[114.490826,38.102393],[114.489357,38.102367],[114.482207,38.102943],[114.480201,38.105969],[114.480167,38.106237],[114.480331,38.106472],[114.480867,38.10667],[114.485018,38.106623],[114.485311,38.106728],[114.485778,38.111707],[114.486186,38.111776],[114.487526,38.112644],[114.489057,38.113343],[114.48411,38.114064],[114.501874,38.129363],[114.501523,38.129686],[114.502489,38.130335],[114.502079,38.130803],[114.500526,38.131615],[114.500148,38.132459],[114.501236,38.138232],[114.498671,38.14157],[114.497644,38.142002],[114.496072,38.141965],[114.494288,38.141581],[114.494393,38.140739],[114.491167,38.140538],[114.481589,38.142197],[114.482211,38.145144],[114.476834,38.146114],[114.474497,38.145917],[114.463968,38.15264],[114.452959,38.160762],[114.450836,38.164218],[114.448647,38.16647],[114.445688,38.168145],[114.438662,38.162307],[114.433407,38.155783],[114.428076,38.148337],[114.426256,38.146279],[114.424454,38.14712],[114.423288,38.146901],[114.422547,38.141412],[114.418824,38.140981],[114.415276,38.137791],[114.414839,38.136347],[114.414335,38.136119],[114.413751,38.135404],[114.414036,38.131395],[114.412169,38.129511],[114.410157,38.129496],[114.408883,38.126623],[114.409603,38.11769],[114.410434,38.117333],[114.416655,38.117997],[114.417137,38.113599],[114.417608,38.111615],[114.416781,38.110921],[114.416581,38.110119],[114.416312,38.10958],[114.40363,38.108036],[114.40343,38.106527],[114.402622,38.106193],[114.400478,38.105519],[114.398056,38.105319],[114.396719,38.106255],[114.395035,38.106658],[114.387141,38.106548],[114.379167,38.105762],[114.378663,38.104456],[114.378392,38.104017],[114.377994,38.103614],[114.376777,38.103109],[114.375769,38.102808],[114.375333,38.102304],[114.3751,38.101866],[114.375065,38.101128],[114.375369,38.100056],[114.375768,38.099584],[114.376211,38.09942],[114.38192,38.09956],[114.382223,38.099192],[114.382423,38.098754],[114.382562,38.091773],[114.382493,38.090092],[114.382622,38.089711],[114.383197,38.089473],[114.383361,38.089104],[114.383395,38.088132],[114.383162,38.086557],[114.382402,38.085333],[114.382153,38.085076],[114.381753,38.085011],[114.37488,38.085328],[114.374271,38.084988],[114.376018,38.076703],[114.376652,38.073279],[114.386511,38.072704],[114.397429,38.070836],[114.405198,38.0695],[114.426512,38.065826],[114.432907,38.064632],[114.436641,38.063707],[114.434891,38.055516],[114.434751,38.054265],[114.434751,38.053182],[114.434838,38.052581],[114.435851,38.049253],[114.436736,38.049211],[114.437996,38.049242],[114.439526,38.049077],[114.446037,38.048765],[114.44885,38.048673],[114.449679,38.048688],[114.451159,38.048597],[114.4514,38.048629],[114.454126,38.048537],[114.454391,38.048492],[114.462083,38.048235],[114.469364,38.047895],[114.469524,38.047826],[114.469547,38.045509],[114.477263,38.045663],[114.477263,38.044878],[114.481007,38.045069],[114.484465,38.045014],[114.484354,38.043448],[114.489044,38.043407],[114.490327,38.043458],[114.492584,38.043611]]]]}}]}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130108,"name":"裕华区","center":[114.533257,38.027696],"centroid":[114.584117,38.009464],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.490425,37.974015],[114.498575,37.970461],[114.498292,37.971851],[114.505773,37.973048],[114.506112,37.970992],[114.507485,37.969415],[114.511847,37.969952],[114.511601,37.971798],[114.520877,37.972294],[114.52029,37.968858],[114.529028,37.969348],[114.529926,37.969314],[114.552554,37.970908],[114.552999,37.968227],[114.557419,37.968432],[114.557285,37.970129],[114.557793,37.970999],[114.558585,37.971596],[114.560203,37.971845],[114.561655,37.971772],[114.561401,37.974149],[114.565555,37.973645],[114.565979,37.973667],[114.566014,37.974581],[114.572726,37.973977],[114.574541,37.97456],[114.574793,37.979878],[114.579061,37.980204],[114.578986,37.978651],[114.583062,37.978686],[114.584109,37.976547],[114.584327,37.973453],[114.586937,37.972204],[114.591802,37.972095],[114.593201,37.967899],[114.593584,37.968418],[114.592136,37.972475],[114.592702,37.973558],[114.608504,37.973343],[114.608735,37.979582],[114.608752,37.982356],[114.610411,37.982481],[114.610384,37.98564],[114.609675,37.98566],[114.609486,37.986728],[114.609696,37.988929],[114.611807,37.990757],[114.61736,37.990947],[114.61714,37.992099],[114.618182,37.992665],[114.621848,37.992758],[114.621875,37.994895],[114.625089,37.994931],[114.625257,37.997773],[114.627722,37.997657],[114.627509,37.996232],[114.627932,37.995735],[114.632653,37.995574],[114.632759,37.992366],[114.637153,37.99209],[114.639678,37.988884],[114.646192,37.985417],[114.647055,37.984873],[114.647057,37.982538],[114.647798,37.981162],[114.650112,37.980392],[114.650121,37.977126],[114.65715,37.977083],[114.657284,37.974246],[114.657381,37.974207],[114.660243,37.973828],[114.660091,37.971133],[114.669506,37.971171],[114.670338,37.969271],[114.673811,37.968953],[114.673959,37.969682],[114.670914,37.978873],[114.669743,37.984588],[114.669708,37.986381],[114.668082,37.986342],[114.668107,37.988461],[114.665796,37.988563],[114.66553,37.991703],[114.662435,37.992034],[114.658874,37.994729],[114.657082,38.000712],[114.657007,38.002725],[114.655844,38.002574],[114.655724,38.008339],[114.654126,38.010027],[114.652546,38.010014],[114.65261,38.012273],[114.655414,38.01337],[114.656859,38.015315],[114.659619,38.015622],[114.66146,38.016805],[114.662473,38.018018],[114.662418,38.019856],[114.664723,38.019766],[114.664669,38.021801],[114.667152,38.021965],[114.667013,38.024891],[114.670307,38.025894],[114.674059,38.025686],[114.674036,38.029468],[114.674989,38.029519],[114.681188,38.030326],[114.682692,38.031391],[114.681877,38.034855],[114.680712,38.03663],[114.678558,38.038167],[114.677578,38.040142],[114.677041,38.041433],[114.609944,38.054698],[114.591174,38.058887],[114.591313,38.055922],[114.591153,38.037099],[114.535073,38.036017],[114.533146,38.035953],[114.532896,38.035977],[114.532769,38.035942],[114.531931,38.035958],[114.526236,38.035855],[114.524302,38.035781],[114.522865,38.035754],[114.517726,38.035701],[114.511869,38.035595],[114.512021,38.029785],[114.512119,38.028272],[114.512063,38.028253],[114.512057,38.027336],[114.512109,38.026404],[114.512217,38.022297],[114.512188,38.021645],[114.512242,38.021337],[114.512256,38.020849],[114.502352,38.010983],[114.501558,38.010173],[114.500143,38.00878],[114.499129,38.00774],[114.49808,38.006756],[114.495331,38.003979],[114.49442,38.003085],[114.493825,38.002726],[114.492213,38.002105],[114.492373,38.001429],[114.493176,37.998788],[114.492509,37.998656],[114.496232,37.976757],[114.490082,37.97586],[114.490425,37.974015]]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130127,"name":"高邑县","center":[114.610699,37.605714],"centroid":[114.598306,37.616239],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.725981,37.630678],[114.723282,37.634732],[114.708463,37.632776],[114.704559,37.63291],[114.70025,37.633861],[114.700114,37.637011],[114.697276,37.637424],[114.69639,37.639319],[114.696983,37.640035],[114.699284,37.638696],[114.7004,37.638926],[114.702785,37.638993],[114.705276,37.640652],[114.70551,37.643688],[114.707476,37.643575],[114.709067,37.644555],[114.709972,37.650351],[114.711648,37.650453],[114.712111,37.651374],[114.708985,37.652877],[114.708427,37.651774],[114.707504,37.65206],[114.706816,37.649208],[114.70261,37.649531],[114.699091,37.649696],[114.698929,37.644931],[114.692816,37.637654],[114.690979,37.636514],[114.691585,37.639051],[114.68995,37.640185],[114.687557,37.641107],[114.685015,37.641132],[114.685074,37.643017],[114.683984,37.642938],[114.682817,37.641991],[114.680565,37.642087],[114.677465,37.643122],[114.674224,37.644944],[114.671882,37.64946],[114.671761,37.654024],[114.669975,37.654215],[114.665466,37.655163],[114.66289,37.657632],[114.654865,37.654854],[114.652732,37.655089],[114.65277,37.655985],[114.652115,37.660775],[114.649683,37.661501],[114.648485,37.663139],[114.648465,37.664999],[114.649724,37.668501],[114.649678,37.670702],[114.64256,37.672493],[114.640188,37.672817],[114.640913,37.675588],[114.636144,37.676063],[114.637023,37.681953],[114.638342,37.681929],[114.64109,37.68775],[114.639175,37.690068],[114.637352,37.690575],[114.637843,37.693522],[114.639427,37.69426],[114.636591,37.694434],[114.635797,37.695047],[114.626559,37.695939],[114.620978,37.696749],[114.620107,37.693838],[114.615459,37.694177],[114.611688,37.692725],[114.610938,37.690507],[114.606771,37.690997],[114.606349,37.691738],[114.604876,37.691994],[114.598648,37.691195],[114.597214,37.688821],[114.591942,37.686864],[114.591248,37.685821],[114.591764,37.681049],[114.591769,37.679604],[114.590582,37.679569],[114.590484,37.677466],[114.587875,37.678222],[114.578367,37.68311],[114.57312,37.686325],[114.572681,37.686206],[114.572344,37.684912],[114.57092,37.681037],[114.570269,37.678149],[114.568167,37.679408],[114.567226,37.679117],[114.564684,37.677448],[114.56125,37.673816],[114.559478,37.673607],[114.553556,37.674108],[114.550189,37.672236],[114.548636,37.671143],[114.54833,37.667865],[114.541207,37.667629],[114.538544,37.667848],[114.538979,37.670122],[114.538449,37.670666],[114.530228,37.671318],[114.529018,37.671966],[114.525455,37.672686],[114.524823,37.672581],[114.52481,37.671663],[114.523273,37.671782],[114.523082,37.669774],[114.52336,37.666823],[114.523239,37.66087],[114.521682,37.654708],[114.519892,37.651188],[114.516564,37.646887],[114.512921,37.644306],[114.507587,37.636028],[114.50495,37.629482],[114.503158,37.622641],[114.501033,37.620439],[114.489326,37.612836],[114.478854,37.595012],[114.471312,37.590656],[114.468932,37.586569],[114.469598,37.580199],[114.473628,37.572977],[114.483478,37.576834],[114.495203,37.578539],[114.501148,37.578239],[114.519944,37.574631],[114.530622,37.570371],[114.539302,37.565867],[114.550266,37.562528],[114.565589,37.556942],[114.576259,37.554296],[114.585186,37.553011],[114.59497,37.553109],[114.603864,37.554579],[114.624279,37.556638],[114.632638,37.556733],[114.646773,37.556214],[114.660284,37.559353],[114.674926,37.564108],[114.68018,37.565269],[114.687038,37.565166],[114.687778,37.57274],[114.694868,37.581299],[114.698793,37.589365],[114.7057,37.61006],[114.707345,37.615803],[114.714848,37.617195],[114.717252,37.621409],[114.716005,37.625983],[114.71699,37.627133],[114.725981,37.630678]]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More