[英]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.