@@ -17,6 +17,7 @@ import FeatureCollectionEditor from './components/features/FeatureCollectionEdit
1717import ShowEditorButton from ' ./components/features/ShowEditorButton.vue' ;
1818import Data from ' ./components/features/Data/Data.vue' ;
1919import ToggleButton from ' ./components/base/ToggleButton.vue' ;
20+ import DataDetail from ' ./components/features/DataDetail.vue' ;
2021
2122import { DrawManager , GeoJSONLayerManager , MeasureManager , TIdentityGeoJSONFeature , MiddleButtonRoate , VertexEditor , useCamera } from ' ../../packages/maplugin-maplibre' ;
2223import { StoreEditor } from ' ./stores' ;
@@ -68,7 +69,42 @@ function handleMapLoaded(map: maplibregl.Map) {
6869 // 中键旋转
6970 new MiddleButtonRoate (map );
7071
71- const glManager = new GeoJSONLayerManager (map , new Array <TIdentityGeoJSONFeature >());
72+ const glManager = new GeoJSONLayerManager <TIdentityGeoJSONFeature >(map , [
73+ {
74+ " type" : " Feature" ,
75+ " geometry" : {
76+ " type" : " Polygon" ,
77+ " coordinates" : [
78+ [
79+ [
80+ 121.20015593197513 ,
81+ 31.646326873778108
82+ ],
83+ [
84+ 121.21262716876038 ,
85+ 31.636886722815902
86+ ],
87+ [
88+ 121.22128404677903 ,
89+ 31.644328677177043
90+ ],
91+ [
92+ 121.20797723212729 ,
93+ 31.654153282119196
94+ ],
95+ [
96+ 121.20015593197513 ,
97+ 31.646326873778108
98+ ]
99+ ]
100+ ]
101+ },
102+ " properties" : {
103+ " id" : " 09cd7939-9a47-4318-aeeb-64b8f2ed7ff4"
104+ }
105+ }
106+ ]);
107+
72108 glManager .on (' all' , () => {
73109 fc .value = glManager .fc ;
74110 });
@@ -96,21 +132,32 @@ function handleMapLoaded(map: maplibregl.Map) {
96132 drawManager .id_layer_line ,
97133 drawManager .id_layer_line_circle ,
98134 drawManager .id_layer_point ,
99- drawManager .id_layer_point_symbol ], ({ features , lngLat }) => {
135+ drawManager .id_layer_point_symbol ], ({ features , lngLat }) => {
100136 if (drawManager .drawing || ! features || features .length === 0 ) return ;
101137 const f = glManager .query ((features [0 ].properties as any )[' id' ]);
102138 if (f ) {
103- // glManager.setFeatureHidden(f.properties.id);
104-
105- // vertexEditor.setFeature(f, (id, g) => {
106- // glManager.clearFeatureHidden(id);
107-
108- // const featrue = glManager.query(id)!;
109- // featrue.geometry = g;
110- // glManager.update(featrue);
111- // });
112-
113- createMapPopup (map , lngLat , ToggleButton , {content:" 123" , defaultActive: false });
139+ const popup = createMapPopup (map , lngLat , DataDetail , {
140+ featrue: f ,
141+ onDelete() {
142+ glManager .delete (f );
143+ popup .remove ();
144+ },
145+ onEdit() {
146+ glManager .setFeatureHidden (f .properties .id );
147+
148+ vertexEditor .setFeature (f , (id , g ) => {
149+ glManager .clearFeatureHidden (id );
150+
151+ const featrue = glManager .query (id )! ;
152+ featrue .geometry = g ;
153+ glManager .update (featrue );
154+ });
155+ popup .remove ();
156+ },
157+ onCopy() {
158+ popup .remove ();
159+ }
160+ });
114161 }
115162 });
116163
0 commit comments