2014-02-05 2 views
0

python 도구 상자를 개발하여 데이터를 체크 아웃하고 파일 지오 데이터베이스에 다시 저장하는 데 필요한 단계를 자동화하고 있습니다. 제 질문은 ArcPad 데이터 관리자 대신 Python 명령 줄과 ArcPad 데이터 관리 도구를 사용하면서 선택한 기능으로 체크 아웃 된 기능을 제한하는 가장 좋은 방법은 무엇입니까? ArcPad 데이터 관리자에서 "선택한 기능 만 가져 오기"체크 상자를 사용하면 쉽게 사용할 수 있습니다. 피어 클래스 중 하나가 큰 구획 맵이므로 사용 영역을 제한하고 파일 크기를 줄이기 때문에이 작업은 중요합니다.arcpad, arcpy, 체크 아웃/인 데이터

답변

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