Dịch vụ xuất bản ArcGIS API cho Python

ArcGIS API cho Python là một thư viện Python để làm việc với bản đồ và dữ liệu không gian địa lý, được cung cấp bởi web GIS. Nó cung cấp các công cụ đơn giản và hiệu quả để học sâu, phân tích vectơ và raster tinh vi, mã hóa địa lý, tạo bản đồ, định tuyến và chỉ đường, cũng như để tổ chức và quản lý một hệ thống thông tin địa lý với người dùng, nhóm và mục thông tin. Ngoài việc làm việc với dữ liệu của riêng bạn, thư viện cho phép truy cập vào bản đồ sẵn sàng sử dụng và dữ liệu địa lý được tuyển chọn từ Esri và các nguồn có thẩm quyền khác. Nó cũng tích hợp tốt với hệ sinh thái Python khoa học và bao gồm hỗ trợ phong phú cho Pandas, Scikit-Learn, Fast. ai, v.v. và máy tính xách tay Jupyter

Để tìm hiểu thêm về API, hãy truy cập trang sản phẩm tại đây. Bạn có thể liên hệ với các nhà phát triển API và những người dùng khác như bạn tại trang cộng đồng tại đây

Bao gồm những gì

Kho lưu trữ SDK này chứa các mục sau

  • Tài liệu tham khảo API. Một phiên bản lưu trữ này có thể được tìm thấy ở đây
  • Các mẫu dưới dạng Máy tính xách tay Jupyter
  • Hướng dẫn các chương dưới dạng Jupyter Notebooks

Bạn có nhiều cách để thực hiện các sổ ghi chép này như được liệt kê bên dưới

  • Thực thi cục bộ trên máy tính của bạn bằng cách cài đặt anaconda và API. Xem trợ giúp
  • Thực thi với ArcGIS Pro. Xem trợ giúp
  • Thực thi với ArcGIS Notebooks, được lưu trữ trên ArcGIS Online. Kiểm tra với sổ ghi chép mẫu
  • Thực thi trong môi trường Dockerised. Xem trợ giúp
  • Thực hiện với Binder. Xem trợ giúp tại đây

Vấn đề

Tìm một lỗi hoặc muốn yêu cầu một tính năng mới? . Cảm ơn bạn

Đóng góp

Bất cứ ai và tất cả mọi người đều được chào đón để đóng góp. Vui lòng xem hướng dẫn đóng góp của chúng tôi tại đây

cấp phép

Bản quyền 2018-2022 Esri

Được cấp phép theo Giấy phép Apache, Phiên bản 2. 0 ("Giấy phép"); . Bạn có thể lấy một bản sao của Giấy phép tại

http. //www. apache. org/giấy phép/GIẤY ​​PHÉP-2. 0

Trừ khi luật hiện hành yêu cầu hoặc được đồng ý bằng văn bản, phần mềm được phân phối theo Giấy phép sẽ được phân phối trên CƠ SỞ "NGUYÊN TRẠNG", KHÔNG CÓ BẢO ĐẢM HAY ĐIỀU KIỆN DƯỚI BẤT KỲ HÌNH THỨC NÀO, rõ ràng hay ngụ ý. Xem Giấy phép để biết các quyền và giới hạn quản lý ngôn ngữ cụ thể theo Giấy phép

tôi đã có thể hoàn thành kịch bản. Tôi đang chia sẻ nó ở đây trong trường hợp bạn có cùng câu hỏi

import os
import arcpy
from arcgis.gis import GIS
import xml.dom.minidom as dom

def publish_service(portal_url=None, server_url=None, input_aprx=None, sddraft_folder=None):

    # get the PSA account information
    username, password = REDACTED 
    
    # Sign in to portal
    arcpy.SignInToPortal(portal_url, username, password)

    # Reference map to publish
    aprx = arcpy.mp.ArcGISProject(input_aprx)
    m = aprx.listMaps(wildcard="REDACTED")[0]

    # get the service name (equal to db name in our case)
    first_layer = m.listLayers()[0]
    dict = first_layer.connectionProperties
    service = dict['connection_info']['database']

    sddraft_filename = service + ".sddraft"
    sddraft_output_filename = os.path.join(sddraft_folder, sddraft_filename)

    # Create FeatureSharingDraft and set service properties
    sharing_draft = m.getWebLayerSharingDraft(server_type="FEDERATED_SERVER",
                                              service_type="MAP_IMAGE",
                                              service_name=service)

    sharing_draft.copyDataToServer = False
    sharing_draft.credits = "REDACTED"
    sharing_draft.description = ""
    sharing_draft.federatedServerUrl = server_url
    sharing_draft.portalFolder = "REDACTED"
    sharing_draft.serverFolder = "REDACTED"
    sharing_draft.summary = service.replace("_", " ") + " REDACTED"

    prj_name_list = service.replace("_", " ").split(" ")
    sharing_draft.tags = prj_name_list[0] + ", " + prj_name_list[1] + ", " + "REDACTED1, REDACTED2, REDACTED3"

    # Create Service Definition Draft file
    sharing_draft.exportToSDDraft(sddraft_output_filename)

    # Read the sddraft xml.
    print("Modifying xml file to enable feature access...")
    doc = dom.parse(sddraft_output_filename)

    # Find all elements named TypeName. This is where the server object extension
    # (SOE) names are defined.
    typeNames = doc.getElementsByTagName('TypeName')
    for typeName in typeNames:
        # Get the TypeName we want to enable.
        if typeName.firstChild.data == "FeatureServer":
            extension = typeName.parentNode
            for extElement in extension.childNodes:
                # Enable Feature Access.
                if extElement.tagName == 'Enabled':
                    extElement.firstChild.data = 'true'

    print("Modifying xml file to enable Z Defaults...")

    # Find all elements named Key.

    typeNames = doc.getElementsByTagName('Key')
    for typeName in typeNames:
        # Get the TypeName we want to enable.
        if typeName.firstChild.data == "enableZDefaults":
            parent = typeName.parentNode
            for extElement in parent.childNodes:
                if extElement.tagName == 'Value':
                    extElement.firstChild.data = 'true'

    # Output to a new sddraft.
    sddraft_mod_xml = service + '_mod_xml' + '.sddraft'
    sddraft_mod_xml_file = os.path.join(sddraft_folder, sddraft_mod_xml)
    f = open(sddraft_mod_xml_file, 'w')
    doc.writexml(f)
    f.close()

    # Stage Service
    sd_filename = service + ".sd"
    sd_output_filename = os.path.join(sddraft_folder, sd_filename)
    arcpy.server.StageService(in_service_definition_draft=sddraft_mod_xml_file,
                              out_service_definition=sd_output_filename)

    # Share to portal
    print("Uploading service definition...")
    arcpy.server.UploadServiceDefinition(in_sd_file=sd_output_filename,
                                         in_server=server_url)

    print("Successfully uploaded service.")

    # Sharing portal items
    ## Sign in to Portal with ArcGIS API for Python
    
    print(f"Sign in to Portal: {portal_url} ...")
    from arcgis.gis import GIS
    username, password = REDACTED
    gis = GIS(url=portal_url, username=username, password=password)

    item_name = service.split("/")[-1]

    items = gis.content.search(query=f"title:{item_name}",
                               max_items=2)
    for item in items:
        print(f"Sharing {item.title} {item.type}...")
        item.share(everyone=True)

    feature_service_url = f"{server_url}/rest/services/REDACTED/{service}/FeatureServer"

    print(f"Feature Service URL is: {feature_service_url}")
    return feature_service_url

API ArcGIS cho Python có miễn phí không?

API ArcGIS dành cho Python cũng miễn phí . Cả Python và API đều có thể được cài đặt trên bất kỳ số lượng máy nào, cho dù là máy tính cục bộ hay máy chủ.

Một số khả năng của ArcGIS API cho Python là gì?

ArcGIS API cho Python là một thư viện Pythonic hiện đại, mạnh mẽ để thực hiện các tác vụ trực quan hóa, phân tích, quản lý dữ liệu và quản trị hệ thống GIS . Khám phá API để tìm hiểu cách viết tập lệnh để thực hiện các tác vụ cụ thể như lập bản đồ, truy vấn, phân tích, mã hóa địa lý, định tuyến, quản trị cổng thông tin, v.v.

Sự khác biệt giữa API ArcGIS cho Python và ArcPy là gì?

Ghi chú. ArcPy và ArcGIS API cho Python là các thư viện bổ sung cho nhau ; .

API ArcGIS cho Python là gì?

ArcGIS API cho Python là thư viện Python để thực hiện trực quan hóa và phân tích GIS, quản lý dữ liệu không gian và các tác vụ quản trị hệ thống GIS có thể chạy cả theo kiểu tương tác và sử dụng tập lệnh< . .