2016-08-25 6 views
3

イメージ、JSON文字列、およびコードスニペットを下に参照すると、コード、コンソール出力、ポリゴン(または実際には幾何図形/グラフィック) ESRI ArcGIS Javascript APIを使用します。何が起こっているのか分かりません....助けてください!ESRI ArcGIS Javascript:JSONのポリゴンが機能しない

JSON文字列:

{ "幾何":{ "リング":[[[ - 91.89013671874848,38.03029444608522]、[ - 91.653930664061,38.00865683368494]、[ - 91.64843749999851,38.00432854459864]、[ - 91.5935058593735,37.93070854451552] 、[ - 91.577026367186,37.88303274722063]、[ - 91.577026367186,37.79192956603227]、[ - 91.631958007811,37.73982010276601]、[ - 91.70886230468598,37.73547599031287]、[ - 91.763793945311,37.76587942393493]、[ - 91.85168457031098,37.85701474874939]、[ - 91.88464355468598,37.9956711998967] ["color":[0,0,0,64]、 "outline":{"color": "0"、 "0"、 "0"、 "0" [0,0,0,255]、 "width":1、 "type": "esriSLS"、 "style": "esriSLSSolid"}、 "type": "esriSFS"、 "style": "esriSFSSolid"}}

マップに図形を追加する

コード:

function createFromJSON(JSONText){ 
     console.log("In Create Function"); 
     dojo.disconnect(handle); 

     var jsontext = JSON.parse(JSONText); 
     var polygon = new esri.geometry.Polygon(jsontext); 
     console.log("Here is the polygon object:"); 
     console.log(polygon); 
     console.log("Now drawing polygon"); 
     map.graphics.add(new Graphic(polygon, new SimpleFillSymbol())); 
     console.log("Polygon should be there"); 
    } 

enter image description here

+0

がされ、 "動作しません"素晴らしい説明ではありません。また、関連するコードをスクリーンショットではなく実際の投稿に追加することを検討してください。 ;-) –

答えて

4

画像に示されているJSON文字列がGraphicオブジェクトではなくジオメトリのです。ご覧のとおり、geometry & symbolが含まれています.Graphicに渡すとうまくいきます。

map.graphics.add(new Graphic(jsontext)); 

多角形が必要な場合は、コードは次のようになります。

var polygon = new esri.geometry.Polygon(jsontext.geometry); 

また、レガシーとAMDスタイルを併用しないでください。

+0

完璧に働いた。どうもありがとうございます!! – JBizz

0

Tカンビが言ったように、あなたの文字列は図形ではありませんが、jsonとesriGeometryの間の変換にいくつかのアイデアを示します。

  • JsonUtilsesri/geometry/jsonUtils)または
  • esri.geometry.fromJson方法:あなたはこれらのいずれかの方法を使用して、esri.GeometryJSONを変換することができ

    。ここで

コードされています

JsonUtilsを使用)メソッドONE

require(
    ["esri/map", "esri/geometry/jsonUtils", "esri/config", "dojo/domReady!"], 
    function (Map, JsonUtils, esriConfig) { 

    var jsonGeometry = {"x":10,"y":20,"spatialReference":{"wkid":3857}}; 

    //Note: you should not use JsonUtils.fromJson(JSON.stringify(jsonGeometry)) 
    var geometry = JsonUtils.fromJson(jsonGeometry); 
    var graphic = new esri.Graphic(firstGeometry); 
}); 

geometry.fromJsonメソッドを使用して)METHOD TWO

var jsonGeometry = {"x":10,"y":20,"spatialReference":{"wkid":3857}}; 
var geometry = esri.geometry.fromJson(jsonGeometry); 
var graphic = new esri.Graphic(geometry); 
関連する問題