2014-02-05 36 views
0

我正在開發一個python工具箱,用於自動執行檢查數據並返回到文件地理數據庫所需的步驟。我的問題是,限制僅使用python命令行和ArcPad Data Management工具而非ArcPad數據管理器選擇的功能的最佳方法是什麼? ArcPad Data Manager中的「僅獲取選定功能」複選框使其變得非常簡單。這很重要,因爲我想限制使用區域並縮小文件大小,因爲其中一個要素類是大宗地圖。Arcpad,arcpy,checkout/in數據和限制選定的功能

回答

0

我確實知道使用arcpy獲取選定項目的一種方法。

#get an map object 
    mxd = arcpy.mapping.MapDocument("CURRENT") 
    #get an dataframe object, here the first one is taken 
    df = arcpy.mapping.ListDataFrames(mxd)[0] 
    #get a layer object 
    lyr = arcpy.mapping.ListLayers(mxd,"NameOfRequiredLayer",df) 
    #now get the FIDs of the selected Elements of your layer 
    selection = arcpy.Describe(lyr).FIDSet 

「選擇」,則包含所選元件的的FID。有了這個,你可以攜帶任何你必須做的事情。例如,您可以設置圖層定義查詢:

#shapes use FID, feature classes use OBJECTID, so you better check 
    IDname = "\"OBJECTID\"" 
    if lyr.dataSource.endswith("shp"): 
     IDname = "\"FID\"" 
    querystring = IDname + " = " + str(selection[0]) 
    for count in range(1,len(selection)): 
     querystring = querystring + " OR " + IDname + " = " + str(selection[count]) 
    if lyr.supports("DEFINITIONQUERY"): 
     lyr.definitionQuery = querystring