| | |
| | | |
| | | // 确定缩放比例 |
| | | const determineScaling = () => { |
| | | console.log('确定缩放比例'); |
| | | // console.log('确定缩放比例'); |
| | | if (!viewer) return; |
| | | let height = viewer.camera.positionCartographic.height; |
| | | // 根据高度展示对应的 gJson |
| | |
| | | active = item.name; |
| | | removeEntities(); |
| | | removeLabel(); |
| | | renderOutline(item); |
| | | if (!item.gJson && !item.splashedList?.length) return; |
| | | item.gJson ? aggregation(item) : splashed(item); |
| | | renderOutline(item); |
| | | break; |
| | | } |
| | | } |
| | |
| | | scalingJudgment[0].gJson = null; |
| | | scalingJudgment[0].splashedList = splashedList; |
| | | active = null; |
| | | // 轮廓 |
| | | const outlineGJson = await getOutLine(jsonPathPre, hierarchy); |
| | | scalingJudgment.forEach(item => item.show && (item.outline = outlineGJson)); |
| | | // 省 |
| | | if (hierarchy.length === 1) { |
| | | const gJson1 = await getFiler(`${defaultDir}${jsonPath}/indexDistrict.json`); |
| | | const gJson2 = await getFiler(`${defaultDir}${jsonPath}/index.json`); |
| | | |
| | | scalingJudgment[1].gJson = { |
| | | ...gJson1, |
| | | features: gJson1.features.map(item => { |
| | |
| | | return { ...item, data: {...findData,type: type + 'Aggregation'} } |
| | | }), |
| | | }; |
| | | console.log(injectData(gJson2, list)); |
| | | scalingJudgment[2].gJson = injectData(gJson2, list); |
| | | const { lng, lat } = getCenterPoint(gJson2.features.map(item => item.properties.center)); |
| | | flyTo({ longitude: lng, latitude: lat }, 0, scalingJudgment[2].height); |
| | | } |
| | | // 市 |
| | | if (hierarchy.length === 2) { |
| | |
| | | scalingJudgment[2].show = false; |
| | | const gJson1 = await getFiler(`${defaultDir}${jsonPath}/index.json`); |
| | | scalingJudgment[1].gJson = injectData(gJson1, list); |
| | | const center = getCenterPoint(gJson1.features.map(item => item.properties.center)); |
| | | flyTo({ longitude: center.lng, latitude: center.lat }, 0, scalingJudgment[1].height); |
| | | } |
| | | // 区县 |
| | | if (hierarchy.length === 3) { |
| | |
| | | scalingJudgment[1].show = false; |
| | | scalingJudgment[2].gJson = null; |
| | | scalingJudgment[2].show = false; |
| | | const outlineGJson = await getOutLine(jsonPathPre, hierarchy); |
| | | const center = outlineGJson.features[0].properties.center; |
| | | flyTo({ longitude: center[0], latitude: center[1] }, 0, scalingJudgment[0].height); |
| | | } |
| | | determineScaling() |
| | | // 轮廓 |
| | | const outlineGJson = await getOutLine(jsonPathPre, hierarchy); |
| | | scalingJudgment.forEach(item => item.show && (item.outline = outlineGJson)); |
| | | const [longitude,latitude] = outlineGJson.features[0].properties.centroid |
| | | flyTo({ longitude, latitude }, 0, scalingJudgment[(hierarchy.length-3) * (-1)].height); |
| | | }; |
| | | |
| | | watch( |
| | |
| | | // const {lng,lat} = getCenterPoint(item1.geometry.coordinates[0][0]) |
| | | return { |
| | | name: item1.properties.name, |
| | | position: item1.properties.center, |
| | | position: item1.properties.centroid, |
| | | data: item1.data, |
| | | id: item1.region_code, |
| | | } |