|
@@ -415,10 +415,8 @@ class FragmentMap : CrAnimationFragment() {
|
|
|
for (model in tileLayers) {
|
|
|
var layer = ArcGISTiledLayer(model.url)
|
|
|
layer.name = model.name
|
|
|
- layer.isVisible = model.isVisible
|
|
|
- mMap?.operationalLayers?.add(layer)
|
|
|
- // todo: 2023/4/13 添加到配置
|
|
|
- LayerManager.getInstance().addLayer(
|
|
|
+ // todo: 2023/4/13 添加到配置 同时获取可见性
|
|
|
+ val isVisible = LayerManager.getInstance().addLayer(
|
|
|
LayerModel(
|
|
|
model.name!!,
|
|
|
model.isVisible,
|
|
@@ -426,6 +424,8 @@ class FragmentMap : CrAnimationFragment() {
|
|
|
layer
|
|
|
), LayerManager.LayerGroup.LAYER_NAME_DAILY
|
|
|
)
|
|
|
+ layer.isVisible = isVisible
|
|
|
+ mMap?.operationalLayers?.add(layer)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -443,10 +443,8 @@ class FragmentMap : CrAnimationFragment() {
|
|
|
var table = tables[vLayer.lyrIdx]
|
|
|
var layer = FeatureLayer(table)
|
|
|
layer.name = vLayer.lyrName
|
|
|
- layer.isVisible = vLayer.isVisible
|
|
|
- mMap?.operationalLayers?.add(layer)
|
|
|
- // todo: 2023/4/13 添加到配置信息
|
|
|
- LayerManager.getInstance().addLayer(
|
|
|
+ // todo: 2023/4/13 添加到配置信息 同时获取可见性
|
|
|
+ val isVisible = LayerManager.getInstance().addLayer(
|
|
|
LayerModel(
|
|
|
vLayer.lyrName,
|
|
|
vLayer.isVisible,
|
|
@@ -454,6 +452,8 @@ class FragmentMap : CrAnimationFragment() {
|
|
|
layer
|
|
|
), LayerManager.LayerGroup.LAYER_NAME_BASE
|
|
|
)
|
|
|
+ layer.isVisible = isVisible
|
|
|
+ mMap?.operationalLayers?.add(layer)
|
|
|
}
|
|
|
})
|
|
|
// todo: 2023/4/13 加载数据集
|
|
@@ -472,57 +472,61 @@ class FragmentMap : CrAnimationFragment() {
|
|
|
fTableMark = geoDatabase.getGeodatabaseFeatureTable("ico84")
|
|
|
fLayerMark = FeatureLayer(fTableMark)
|
|
|
fLayerMark!!.name = LAYER_NAME_ICO
|
|
|
- fLayerMark!!.isVisible = true
|
|
|
- mMap!!.operationalLayers.add(fLayerMark)
|
|
|
- LayerManager.getInstance().addLayer(
|
|
|
+ // todo: 2023/9/27 添加图层配置并获取默认可见性
|
|
|
+ val isVisibleMark = LayerManager.getInstance().addLayer(
|
|
|
LayerModel(
|
|
|
fLayerMark!!.name,
|
|
|
- fLayerMark!!.isVisible, LayerType.LAYER_TYPE_FEATURE_EDIT, fLayerMark!!
|
|
|
+ true, LayerType.LAYER_TYPE_FEATURE_EDIT, fLayerMark!!
|
|
|
), LayerManager.LayerGroup.LAYER_NAME_DAILY
|
|
|
)
|
|
|
+ fLayerMark!!.isVisible = isVisibleMark
|
|
|
+ mMap!!.operationalLayers.add(fLayerMark)
|
|
|
// todo: 2023/4/14 初始化涂鸦图层
|
|
|
fTableDoodle = geoDatabase.getGeodatabaseFeatureTable("ty84")
|
|
|
fLayerDoodle = FeatureLayer(fTableDoodle)
|
|
|
fLayerDoodle!!.name = LAYER_NAME_DOODLE
|
|
|
- fLayerDoodle!!.isVisible = true
|
|
|
- mMap!!.operationalLayers.add(fLayerDoodle)
|
|
|
- LayerManager.getInstance().addLayer(
|
|
|
+ // todo: 2023/9/27 添加图层配置 并获取默认可见性
|
|
|
+ val isVisibleDoodle = LayerManager.getInstance().addLayer(
|
|
|
LayerModel(
|
|
|
fLayerDoodle!!.name,
|
|
|
- fLayerDoodle!!.isVisible, LayerType.LAYER_TYPE_FEATURE_EDIT, fLayerDoodle!!
|
|
|
+ true, LayerType.LAYER_TYPE_FEATURE_EDIT, fLayerDoodle!!
|
|
|
), LayerManager.LayerGroup.LAYER_NAME_DAILY
|
|
|
)
|
|
|
+ fLayerDoodle!!.isVisible = isVisibleDoodle
|
|
|
+ mMap!!.operationalLayers.add(fLayerDoodle)
|
|
|
// todo: 2023/4/14 初始化媒体点图层
|
|
|
fTableMedia = geoDatabase.getGeodatabaseFeatureTable("media84")
|
|
|
fLayerMedia = FeatureLayer(fTableMedia)
|
|
|
fLayerMedia!!.name = LAYER_NAME_MEDIA
|
|
|
- fLayerMedia!!.isVisible = true
|
|
|
- mMap!!.operationalLayers.add(fLayerMedia)
|
|
|
- LayerManager.getInstance().addLayer(
|
|
|
+ // todo: 2023/9/27 添加图层配置 并获取默认可见性
|
|
|
+ val isVisibleMedia = LayerManager.getInstance().addLayer(
|
|
|
LayerModel(
|
|
|
fLayerMedia!!.name,
|
|
|
- fLayerMedia!!.isVisible, LayerType.LAYER_TYPE_FEATURE_EDIT, fLayerMedia!!
|
|
|
+ true, LayerType.LAYER_TYPE_FEATURE_EDIT, fLayerMedia!!
|
|
|
), LayerManager.LayerGroup.LAYER_NAME_DAILY
|
|
|
)
|
|
|
+ fLayerMedia!!.isVisible = isVisibleMedia
|
|
|
+ mMap!!.operationalLayers.add(fLayerMedia)
|
|
|
// todo: 2023/4/14 初始化违建面图层
|
|
|
fTableCasePolygon = geoDatabase.getGeodatabaseFeatureTable("sbwj84")
|
|
|
fLayerCasePolygon = FeatureLayer(fTableCasePolygon)
|
|
|
fLayerCasePolygon!!.name = LAYER_NAME_CASE
|
|
|
- fLayerCasePolygon!!.isVisible = true
|
|
|
// todo: 2023/4/14 给图层添加标注
|
|
|
val labelDefinition: LabelDefinition =
|
|
|
createLabelDefinition(Color.BLUE, 12.0f, "round(\$feature.MJ,2) + '亩';")
|
|
|
fLayerCasePolygon!!.labelDefinitions.add(labelDefinition)
|
|
|
fLayerCasePolygon!!.isLabelsEnabled = true
|
|
|
- mMap!!.operationalLayers.add(fLayerCasePolygon)
|
|
|
- LayerManager.getInstance().addLayer(
|
|
|
+ // todo: 2023/9/27 添加图层配置 并获取默认可见性
|
|
|
+ val isVisibleCase = LayerManager.getInstance().addLayer(
|
|
|
LayerModel(
|
|
|
fLayerCasePolygon!!.name,
|
|
|
- fLayerCasePolygon!!.isVisible,
|
|
|
+ true,
|
|
|
LayerType.LAYER_TYPE_FEATURE_EDIT,
|
|
|
fLayerCasePolygon!!
|
|
|
), LayerManager.LayerGroup.LAYER_NAME_DAILY
|
|
|
)
|
|
|
+ fLayerCasePolygon!!.isVisible = isVisibleCase
|
|
|
+ mMap!!.operationalLayers.add(fLayerCasePolygon)
|
|
|
// todo: 2023/4/14 可编辑数据符号化
|
|
|
editLayerRenderer()
|
|
|
})
|
|
@@ -652,19 +656,19 @@ class FragmentMap : CrAnimationFragment() {
|
|
|
layerName: String,
|
|
|
group: LayerManager.LayerGroup
|
|
|
) {
|
|
|
- // todo: 2023/8/17 设置可见
|
|
|
- layer.isVisible = true
|
|
|
- // todo: 2023/8/17 加入到地图中
|
|
|
- mapView?.graphicsOverlays!!.add(layer)
|
|
|
// todo: 2023/8/17 加入到图层控制中
|
|
|
- LayerManager.getInstance().addLayer(
|
|
|
+ val isVisible = LayerManager.getInstance().addLayer(
|
|
|
LayerModel(
|
|
|
layerName,
|
|
|
- layer.isVisible,
|
|
|
+ true,
|
|
|
LayerType.LAYER_TYPE_GRAPHIC,
|
|
|
layer
|
|
|
), group
|
|
|
)
|
|
|
+ // todo: 2023/8/17 设置可见
|
|
|
+ layer.isVisible = isVisible
|
|
|
+ // todo: 2023/8/17 加入到地图中
|
|
|
+ mapView?.graphicsOverlays!!.add(layer)
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -788,17 +792,18 @@ class FragmentMap : CrAnimationFragment() {
|
|
|
*/
|
|
|
private fun appendGraphicOverlay(layer: GraphicsOverlay, layerName: String) {
|
|
|
// todo: 2023/4/19 设置该图层显示
|
|
|
- layer.isVisible = true
|
|
|
mapView?.graphicsOverlays?.let {
|
|
|
- it.add(layer)
|
|
|
- LayerManager.getInstance().addLayer(
|
|
|
+ // todo: 2023/9/27 添加图层配置 并获取默认可见性
|
|
|
+ val isVisible = LayerManager.getInstance().addLayer(
|
|
|
LayerModel(
|
|
|
layerName,
|
|
|
- layer.isVisible,
|
|
|
+ true,
|
|
|
LayerType.LAYER_TYPE_GRAPHIC,
|
|
|
layer
|
|
|
), LayerManager.LayerGroup.LAYER_NAME_DRAW
|
|
|
)
|
|
|
+ layer.isVisible = isVisible
|
|
|
+ it.add(layer)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2039,6 +2044,75 @@ class FragmentMap : CrAnimationFragment() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 案件上传成功后,更新案件点并删除案件面数据
|
|
|
+ * @param caseModel CaseModel 更新成功的案件模型
|
|
|
+ */
|
|
|
+ private fun updateCaseAndDelPolygonBecauseUploadSuccess(caseModel:CaseModel){
|
|
|
+ // todo: 2023/9/27 创建查询条件
|
|
|
+ var queryParams = QueryParameters()
|
|
|
+ queryParams.whereClause = String.format("%s='%s'", FIELD_CASE_NAME,caseModel.name)
|
|
|
+ // todo: 2023/9/27 开始查询
|
|
|
+ val asyncQuery = fTableMedia?.queryFeaturesAsync(queryParams)
|
|
|
+ asyncQuery?.addDoneListener{
|
|
|
+ if(asyncQuery.isDone){
|
|
|
+ var result = asyncQuery.get().iterator()
|
|
|
+ if (result.hasNext()){
|
|
|
+ var feature = result.next()
|
|
|
+ feature.attributes[FIELD_CASE_ISUP] = MEDIA_TYPE_WJ_YES
|
|
|
+ feature.attributes[FIELD_CASE_RQ] = CrUnitManager.toSystemYMDHMSDate()
|
|
|
+ // todo: 2023/9/27 更新
|
|
|
+ updateCasePointAttributeByFeature(feature)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新案件点属性
|
|
|
+ * @param feature Feature
|
|
|
+ */
|
|
|
+ private fun updateCasePointAttributeByFeature(feature:Feature){
|
|
|
+ val updateAsync = fTableMedia?.updateFeatureAsync(feature)
|
|
|
+ updateAsync?.addDoneListener{
|
|
|
+ if(updateAsync.isDone){
|
|
|
+ // todo: 2023/9/27 更新完成 删除关联面
|
|
|
+ deleteCasePolygonFeatureByFeature(feature)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除案件点关联的案件面(通过空间相交分析)
|
|
|
+ * @param feature Feature 案件点要素
|
|
|
+ */
|
|
|
+ private fun deleteCasePolygonFeatureByFeature(feature:Feature){
|
|
|
+ // todo: 2023/9/27 创建查询条件
|
|
|
+ var queryParams = QueryParameters();
|
|
|
+ queryParams.whereClause = "1=1"
|
|
|
+ queryParams.geometry = feature.geometry
|
|
|
+ queryParams.spatialRelationship = QueryParameters.SpatialRelationship.INTERSECTS
|
|
|
+ // todo: 2023/9/27 查询
|
|
|
+ val asyncQuery = fTableCasePolygon?.queryFeaturesAsync(queryParams)
|
|
|
+ asyncQuery?.addDoneListener{
|
|
|
+ if(asyncQuery.isDone){
|
|
|
+ // todo: 2023/9/27 查询完成后 删除
|
|
|
+ val result = asyncQuery.get().iterator()
|
|
|
+ val delFeatures = mutableListOf<Feature>()
|
|
|
+ while (result.hasNext()){
|
|
|
+ delFeatures.add(result.next())
|
|
|
+ }
|
|
|
+ val asyncDelete = fTableCasePolygon?.deleteFeaturesAsync(delFeatures)
|
|
|
+ asyncDelete?.addDoneListener{
|
|
|
+ if(asyncDelete.isDone){
|
|
|
+ // todo: 2023/9/27 删除成功
|
|
|
+ showInformation("地图案件已更新!")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 订阅地图事件执行动作
|
|
@@ -2188,6 +2262,12 @@ class FragmentMap : CrAnimationFragment() {
|
|
|
CrUtil.showToast("地图上选择需要上传或分享的案件!")
|
|
|
mapTouch?.setAction(MapAction.MapTapCaseWxAndUpload)
|
|
|
}
|
|
|
+ // todo: 2023/9/27 案件上传成功
|
|
|
+ MapAction.EventCaseUploadSuccess->{
|
|
|
+ var caseModel = event.owner as CaseModel
|
|
|
+ // todo: 2023/9/27 更新案件点为已上传 删除面对象
|
|
|
+ updateCaseAndDelPolygonBecauseUploadSuccess(caseModel)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|