簡體   English   中英

ArcGIS Online:使用托管要素圖層數據動態填充現有表單

[英]ArcGIS Online: Populate an existing form dynamically with Hosted Feature Layer Data

我有一個預先存在的表單 (.pdf &.doc),我正在嘗試使用來自 ArcGIS Online 托管要素圖層的屬性數據進行填充。 我不確定是否有辦法將 ArcGIS API for Javascript 與 FPDF 一起使用? 或者如果有另一種方法可以做這樣的事情。

我嘗試了以下方法,它工作得很好,但我不想定期下載數據來處理任何傳入的新數據。另外,我希望在用戶點擊時生成此表單web 映射應用程序的彈出窗口中的鏈接(下面的屏幕截圖)。

https://justincolegis.com/2017/12/13/using-survey123-or-any-gis-data-to-populated-reports-in-word/

彈窗截圖

**更新:基本上我不知道該怎么做,因為將我們的數據移動到托管要素圖層,是如何從要素中獲取屬性並將該信息放入已經存在的 pdf 文檔/表單中。

下面是 PHP 文件的一部分,它通過查詢 Oracle 表來使用 FPDF 和 arrays。 這適用於駐留在我們服務器上 Oracle 表中的舊數據,但這不適用於自從將其移動到托管要素圖層后進入圖層的新數據。

    /Query
    $query = 'SELECT OBJECTID, SITEID, TARGET_SPECIES, DATE_TREATMENT, WATER_BODY,
     AQ_WORKERS, AQ_WEATHER, AQ_WINDSPEED, AQ_TEMP, AQ_WINDDIRECTION, AQ_TOTAL_AI,
     AQ_MIX_USED, AQ_RAIN, AQ_TREATMENT_TYPE, LOCATION, ST_GROUP, COUNTY, AQ_CONTROL_METHOD,
     AQ_APPLICATION_METHOD, AQ_CHEMICALUSED, CH_EPACONCENTRATION,
     AQ_CHEMICALUSED2, CH_EPACONCENTRATION2, MT_COMPANY, NPDES_COC, PDMP,
     AQ_RATEOFAPPLICATION, LATITUDE, LONGITUDE, AQ_MIX_RATE, APPLICATION_AREA, 
     AQ_EFFECTIVENESS FROM WEB_AQTREATMENT WHERE OBJECTID = '.$_GET['id'];

        ob_start();
        $pdf = new FPDI();
        $pdf->addPage('P');
        $pagecount = $pdf->setSourceFile('../../../../../treatment_form.pdf');
        $tplIdx = $pdf->importPage(1);
        $pdf->useTemplate($tplIdx);
        $pdf->SetFont('Helvetica','I',9);
        $pdf->SetTextColor(0,0,0);
        //
        //PERMITTEE INFORMATION
        //
        //PermitNumber (L/R), (U/D)
        $pdf->SetXY(114, 69);
        $pdf->Write(0, $array[20]);
        //Permittee Name (L/R), (U/D)
        $pdf->SetXY(114, 80);
        $pdf->Write(0, $array[19]);
        //Body of Water Treated (L/R), (U/D)
        $pdf->SetXY(114, 92);
        $pdf->Write(0, $array[4]);
        //County
        $pdf->SetXY(176, 92);
        $pdf->Write(0, $array[16]);
        //Date (L/R), (U/D)
        $pdf->SetXY(41.5, 135.5);
        //$pdf->MultiCell(30,5,$array[3],0, 'L');
        $pdf->Write(0,$array[3]);
        //Name of Person Applying Chemical (L/R), (U/D)
        $pdf->SetXY(73, 134);
        $pdf->MultiCell(65,5,$array[5],0,'L');
        //Name of Company (L/R), (U/D)
        $pdf->SetXY(142, 136.5);
        $pdf->Write(0, $array[25]);

如果要素服務在表單中包含您需要的所有字段,那么您可以發送您需要的所有字段,而不是僅發送 id,或者您甚至可以使用圖形toJSON方法對其進行序列化,然后發送所有內容,

function popupContent (feature) {
    // your custom popup content
    ...
    // instead of sending id send all the graphic data
    fetch(url, {
        method: 'POST', // *GET, POST, PUT, DELETE, etc.
        headers: {
          'Content-Type': 'application/json'
        },
        body: feature.graphic.toJSON()
    });
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM