Daugiau

Pašalinkite sluoksnį iš „mxd“ dokumento naudodami „arcpy“


Norėčiau pašalinti kai kuriuos sluoksnius iš MXD dokumento, kurį šiuo metu naudoja „ArcGis“ serverio tarnyba. Šiai užduočiai įgyvendinti naudoju „arcpy“. Čia yra mano kodas pašalinti sluoksnius iš MXD dokumentų:

importuoti arcpy mxd = arcpy.mapping.MapDocument (r "C:  Project  Empty.mxd") df failui arcpy.mapping.ListDataFrames (mxd): skirtas lyr archpy.mapping.ListLayers (mxd, "", df) : jei lyr.name.lower () == "test": arcpy.mapping.RemoveLayer (df, lyr) mxd.saveACopy (r "C:  Project  test2.mxd") del mxd

Man pavyko sėkmingai įvykdyti kodą. Tačiau nemačiau, kad sluoksnis būtų pašalintas iš žemėlapio paslaugos.

Bandžiau iš naujo paleisti paslaugą, bet ji negali pašalinti formos failų iš naujo paleidus paslaugą.

Vienintelis būdas man pašalinti sluoksnį yra ištrinti paslaugą ir įkelti paslaugą.

Ar yra kitas būdas pašalinti sluoksnio failą iš „mxd“ dokumento, neištrinant paslaugos ir neįkėlus paslaugos? Taip yra todėl, kad paslaugos įkėlimas ir ištrynimas „ArcGis“ serveryje užtrunka gana ilgai.


Man pavyko sėkmingai įvykdyti kodą. Tačiau nemačiau, kad sluoksnis būtų pašalintas iš žemėlapio paslaugos.

Aukščiau pateiktas „Python“ kodas pašalina „bandymo“ sluoksnį iš MXD, todėl su kodu nėra jokių problemų.

Tačiau „ArcGIS Server“ paslauga nuolat „neklauso“ MXD, todėl pakeitimai, kuriuos atliekate MXD, automatiškai nebus rodomi „ArcGIS Server“.

Ar yra kitas būdas pašalinti sluoksnio failą iš „mxd“ dokumento, neištrinant paslaugos ir neįkėlus paslaugos?

Vietoj to galite perrašyti „ArcGIS Server“ paslauga, naudojant naują MXD, pašalinus sluoksnį.

„ArcMap“ pasirinkite > Failas> Bendrinti kaip> Paslauga, tada kitame skydelyje pasirinkite Perrašyti esamą paslaugą.

Kitame skydelyje raskite esamos paslaugos, kurią norite perrašyti, pavadinimą.