কিভাবে আর্কজিআইএস সার্ভার 10.1 এ অনেক এমএক্সডি ফাইল স্বয়ংক্রিয়ভাবে প্রকাশ করবেন?
আমার প্রায় 60 এমএক্সডি ফাইল রয়েছে এবং আমি সেগুলি স্বয়ংক্রিয়ভাবে প্রকাশ করতে চাই। এই কাজ করতে কোন উপায় আছে কি?
কিভাবে আর্কজিআইএস সার্ভার 10.1 এ অনেক এমএক্সডি ফাইল স্বয়ংক্রিয়ভাবে প্রকাশ করবেন?
আমার প্রায় 60 এমএক্সডি ফাইল রয়েছে এবং আমি সেগুলি স্বয়ংক্রিয়ভাবে প্রকাশ করতে চাই। এই কাজ করতে কোন উপায় আছে কি?
উত্তর:
আপনি আপনার এমএক্সডি ফাইল প্রকাশের জন্য আরকিপি ব্যবহার করতে পারেন।
আপনার এমএক্সডি ফাইল তালিকার জন্য ওএসওয়াক ব্যবহার করুন:
import os
import arcpy
path= r"c:\path"
for (path, dirs, files) in os.walk(path):
for fl in files:
if fl.lower().endswith(".mxd"):
mxd = arcpy.mapping.MapDocument(os.path.join(path, fl))
print mxd.filePath
এবং তারপর এই পথে যান:
১. অ্যানালাইজিং ফরএমএসডি () ফাংশন ( তথ্য ): মানচিত্রের পরিষেবা সংজ্ঞা (এমএসডি) ফাইলে কোনও মানচিত্রকে রূপান্তর করার সময় সম্ভাব্য উপযুক্ততা এবং কার্য সম্পাদনের সমস্যাগুলির উত্স নির্ধারণের জন্য মানচিত্র নথি (.mxd) বিশ্লেষণ করে।
উদাহরণ:
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\ReadyForMSD.mxd")
analysis = arcpy.mapping.AnalyzeForMSD(mxd)
২. কনভার্টটোমএসডি () ফাংশন ( তথ্য ): একটি মানচিত্রকে একটি মানচিত্র পরিষেবা সংজ্ঞা (এমএসডি) ফাইলে রূপান্তর করে।
উদাহরণ:
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\ReadyForMSD.mxd")
msd = r"C:\Project\Output\Project.msd"
df = arcpy.mapping.ListDataFrames(mxd, "County Maps")[0]
arcpy.mapping.ConvertToMSD(mxd, msd, df, "NORMAL", "NORMAL")
del mxd, msd
৩. প্রকাশনাএমএসডিটিও সার্ভার () ফাংশন ( তথ্য ): একটি মনোনীত আরকজিআইএস সার্ভারে একটি বিদ্যমান মানচিত্র পরিষেবা সংজ্ঞা (এমএসডি) ফাইল প্রকাশ করে।
উদাহরণ:
import arcpy
msd = r"C:\Project\Project.msd"
arcpy.mapping.PublishMSDToServer (msd, "http://<MyServer>/arcgis/services",
"<MyServer>", "MyMapService", "MyMapServiceFolder", ["WMS", "KML"])
শেষ কথাটি হ'ল এমনটি করা উচিত যা আপনার প্রয়োজনের জন্য সমস্ত ফানসিটনগুলিকে একত্রিত করে। আসলে এখানে একটি টিউটোরিয়াল রয়েছে যা আপনাকে অর্কজিআইএস সার্ভারে মানচিত্র নথি প্রকাশ করতে আর্কপাই ম্যাপিং সম্পর্কে এখানে সহায়তা করতে পারে । এটি আমার ডকুমেন্টেশনের মতোই ...
সংক্ষিপ্ত বিবরণে (চিত্রটি আমি উপরে দেওয়া লিঙ্ক থেকে এসেছে):
আমি এটি আপনাকে সাহায্য করে আশা করি...
arcpy.mapping.CreateMapSDDraft
arcpy.StageService_server
arcpy.UploadServiceDefinition_server
যদি আপনি এটি সি # তে করতে চান তবে আপনি আমার ব্লগে দেখতে পারেন: http://nicogis.blogspot.it/2012/10/ags-101-restful-ad प्रशासकीय-api.html
রূপান্তরকরণের জন্য এমএক্সডি -> এমএসডি আপনি সি # থেকে পাইথড পাইথন ব্যবহার করতে পারেন
অ্যারাগনের একটি দুর্দান্ত উত্তর রয়েছে, তবে দুর্ভাগ্যক্রমে এটি আরকজিআইএস / আর্কসভার 10.1 এর জন্য কাজ করে না।
আমি যে নতুন পদ্ধতিটি সবেমাত্র চেষ্টা করেছি তা আরকিজিআইএস 10.1 সাহায্যের ভিত্তিতে তৈরি। আপনি এখানে সহায়তা ফাইলের লিঙ্কটি খুঁজে পেতে পারেন: http://resources.arcgis.com/en/help/main/10.1/index.html#//00s30000006q000000
নির্দিষ্ট ফোল্ডারের ভিত্তিতে এমএক্সডি প্রকাশের জন্য আমি কোডটি এখানে কীভাবে ব্যবহার করেছি:
#import modules
import arcpy, sys, os, string
#specify folder containing MXDs
inFolder = raw_input("Please enter folder containing 10.1 MXDs to Publish to ArcServer: ")
#specify connection File Path
connectionFilePath = r'C:\Users\<your user name>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog\<your connection file location.ags>'
#look in folder for mxds
MapPath= []
MapFolder = os.listdir(inFolder)
for file in MapFolder:
fileExt = os.path.splitext(file)[1]
if fileExt == ".mxd":
MapPath = os.path.join(inFolder, file)
file = MapPath.strip('\'')
mxd = arcpy.mapping.MapDocument(file)
base = os.path.basename(file)
serviceName = base[:-4]
SDDraft = file[:-4] + ".sddraft"
sd = file[:-4] + ".sd"
#Create Map SD Draft
print "\n" + "Publishing: " + base
analysis = arcpy.mapping.CreateMapSDDraft(mxd, SDDraft, serviceName, "FROM_CONNECTION_FILE", connectionFilePath, "False", <Service Folder Name>, "None", "None")
# stage and upload the service if the sddraft analysis did not contain errors
if analysis['errors'] == {}:
# Execute StageService
print "Staging Service"
arcpy.StageService_server(SDDraft, sd)
# Execute UploadServiceDefinition
print "Uploading Service Definition"
arcpy.UploadServiceDefinition_server(sd, connectionFilePath)
print "Publishing " + base +" succeeded" + "\n"
else:
# if the sddraft analysis contained errors, display them
print analysis['errors']
এই কোডটি ব্যবহার করার সহজ উপায় হতে পারে তবে এটি আমার পক্ষে কার্যকর। আশাকরি এটা সাহায্য করবে.