কিভাবে আর্কজিআইএস সার্ভার 10.1 এ স্বয়ংক্রিয়ভাবে অনেক এমএক্সডি ফাইল প্রকাশ করবেন?


12

কিভাবে আর্কজিআইএস সার্ভার 10.1 এ অনেক এমএক্সডি ফাইল স্বয়ংক্রিয়ভাবে প্রকাশ করবেন?

আমার প্রায় 60 এমএক্সডি ফাইল রয়েছে এবং আমি সেগুলি স্বয়ংক্রিয়ভাবে প্রকাশ করতে চাই। এই কাজ করতে কোন উপায় আছে কি?


Btelliot, আপনার কোড 10.2 কাজ করে! সেবার ব্যাপারে অবশ্যই কিছু বিবরণ সংজ্ঞায়িত করার প্রয়োজন আছে, তবে এটি একটি আশ্চর্যজনক সূচনা পয়েন্ট !!! 10 এক্স

উত্তর:


14

আপনি আপনার এমএক্সডি ফাইল প্রকাশের জন্য আরকিপি ব্যবহার করতে পারেন।

আপনার এমএক্সডি ফাইল তালিকার জন্য ওএসওয়াক ব্যবহার করুন:

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"])

শেষ কথাটি হ'ল এমনটি করা উচিত যা আপনার প্রয়োজনের জন্য সমস্ত ফানসিটনগুলিকে একত্রিত করে। আসলে এখানে একটি টিউটোরিয়াল রয়েছে যা আপনাকে অর্কজিআইএস সার্ভারে মানচিত্র নথি প্রকাশ করতে আর্কপাই ম্যাপিং সম্পর্কে এখানে সহায়তা করতে পারে । এটি আমার ডকুমেন্টেশনের মতোই ...

সংক্ষিপ্ত বিবরণে (চিত্রটি আমি উপরে দেওয়া লিঙ্ক থেকে এসেছে):

arcgis

আমি এটি আপনাকে সাহায্য করে আশা করি...


10.1 এর সাথে কাজ করে এর ইচ্ছা কি? 10.1 এ * .msd এর পরিবর্তে * .sd হয়।
ব্যবহারকারী7172

হ্যাঁ এটি 10 ​​এর জন্য তবে আপনি নতুন আরকিটি 10.1 এর জন্য আপডেট করতে পারেন ...
অ্যারাগন

1
ধন্যবাদ অ্যারাগন, এটি খুব সহায়ক ছিল! সবেমাত্র ১৩০ এমএক্সডি এর চেয়ে বেশি স্বয়ংক্রিয় প্রকাশনা শেষ হয়েছে। :) কেবল arcpy.mapping.CreateMapSDDraftarcpy.StageService_serverarcpy.UploadServiceDefinition_server
উত্তরসূরির


4

অ্যারাগনের একটি দুর্দান্ত উত্তর রয়েছে, তবে দুর্ভাগ্যক্রমে এটি আরকজিআইএস / আর্কসভার 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']

এই কোডটি ব্যবহার করার সহজ উপায় হতে পারে তবে এটি আমার পক্ষে কার্যকর। আশাকরি এটা সাহায্য করবে.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.