2017-08-17 2 views
0

私はArcGISプログラミングで新しく、ArcGIS API for this use:https://developers.arcgis.com/javascript/3/jssamples/toolbar_draw.htmlを使用して描画スクリプトでポリゴンの属性を入力しようとしています。ArcGIS API for Javacriptを使用してポリゴンの属性を入力する方法は?

イベントドローイングの完了を使用して、これに基づいてウィンドウのポップアップ(ウィンドウのポップアップはベースフォームの入力用です):https://developers.arcgis.com/javascript/3/jsapi/draw-amd.html#event-draw-completeを入力しようとしましたが、使用方法がわからないので失敗します。私のコードは次のようなものでした:

誰かが別の方法で属性を入力する方法を教えていただけますか?

答えて

0

ArcGIS Javascript APIはこのフレームワークに基づいているため、dojoフレームワークでフォームを作成できます。

のは、道場のウェブサイトからこの例を見てみましょう:https://dojotoolkit.org/reference-guide/1.10/dijit/form/Form.html

このフォームには2つの値、名前と生年月日を要求します。 多角形の属性に対応するものとしましょう。 今、あなたのニーズに合わせて調整しましょう。

まず、我々は

<div data-dojo-type="dijit/form/Form" id="myForm" data-dojo-id="myForm" encType="multipart/form-data" action="" method=""> 
<table style="border: 1px solid #9f9f9f;" cellspacing="10"> 
    <tr> 
    <td><label for="name">Name:</label></td><td><input type="text" id="name" name="name" required="true" data-dojo-type="dijit/form/ValidationTextBox"/></td> 
    </tr> 
    <tr> 
    <td><label for="dob">Date of birth:</label></td><td><input type="text" id="dob" name="dob" data-dojo-type="dijit/form/DateTextBox"/></td> 
    </tr> 
</table> 

<button data-dojo-type="dijit/form/Button" type="submit" name="submitButton" value="Submit">Submit</button> 
<button data-dojo-type="dijit/form/Button" type="reset">Reset</button> 

さて、フォームを処理するためのJavaScriptコード当社のフォームを構築する必要があるHTMLを取ります。それをあなたのコードにマージして、置き換えないようにしてください。

require(["dojo/parser", "dojo/on", "dijit/registry", "dijit/form/Form", "dijit/form/Button", "dijit/form/ValidationTextBox", "dijit/form/DateTextBox", "dojo/domReady!"], 
function(parser, on, registry) { 
    var attributes = {}; 
    parser.parse(); 
    var myForm = registry.byId("myForm"); 
    on(myForm, "submit", function(){ 
    if(this.validate()){ 
     attributes = myForm.getValues(); 
     delete attributes['submitButton']; 
     return true; 
    }else{ 
     alert('Form contains invalid data. Please correct first'); 
     return false; 
    } 
    }); 

    on(myForm, "reset", function(){ 
    return confirm('Press OK to reset widget values'); 
    }); 
}); 

最後に、あなたのコードの最後の行を変更し、そのAPIドキュメントに記載されているように、それは、多角形のフォームから属性を付ける:

var graphic = new Graphic(evt.geometry, symbol, attributes); 
map.graphics.add(graphic); 
関連する問題