2013-07-27 50 views
0

我使用的是esri javascript 3.5。我有一个要将它绘制成多边形的点列表。我发现这个https://developers.arcgis.com/en/javascript/jssamples/util_relation.html,但我不知道如何使用它。我能知道我可以从哪里得到样品吗?说我有点的阵列...948ESRI Javascript多边形

 dojo.require("esri.map"); 
    dojo.require("esri.graphic"); 

    var map ; 
    function init() { 
    map = new esri.Map("map",{ 
     basemap:"topo", 
     center:[103.8, 1.35], //long, lat 
     zoom:13 
    }); 
       dojo.connect(map,"onLoad", loadData); 
    }//end init 
    function loadData(){ 
    var arr =[]; 
var p = new esri.geometry.Point(103.8, 1.35); 
arr.push(p); 
p = new esri.geometry.Point(103.8, 1.35222); 
arr.push(p); 
var polySymbolRed = new esri.symbol.SimpleFillSymbol(
       esri.symbol.SimpleLineSymbol.STYLE_SOLID, 
       new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, 
       new dojo.Color([0, 0, 0, 1]), 1), 
       new dojo.Color([255, 0, 0, 0.2]) 
     ); 

var gra = new esri.Graphic(arr,polySymbolRed); 
map.graphics.add(gra); 


    } 

回答

1

你很近,你只需要按摩数组创建.Graphic前位:

var poly = new esri.geometry.Polygon({ 
       "spatialReference": {" wkid":4326 }, 
       "fields": [{ 
        "name": "FID", 
        "type": "esriFieldTypeOID", 
        "alias": "FID", 
        "domain": null   
       },...] 
      }); 
var ring = new Array(); 

//push points into array 

poly.addRing(ring); 

var gra = new esri.Graphic(poly,polySymbolRed); 
//Maybe: 
//var gra = new esri.Graphic(esri.geometry.geographicToWebMercator(poly),polySymbolRed); 
//depending on what SR your map is using... 
+0

我想提请你指定为多边形var polygon = new esri.geometry.Polygon(new esri.SpatialReference({wkid:4326})); polygon.addRing([[74.00390625,32.02670629333614],[25.9703383,44.4813038],[26.103418,44.4593175],[26.1695982,44.4587537]]); esrimap.graphics.add(new esri.Graphic(polygon,polylineSymbol));但它正在绘制多段线 –

+0

您的变量'polylineSymbol'似乎表明问题出在哪里...... :)(多边形实际上只是一个带有FillSymbol而不是LineSymbol的多段线 - 如果您给它一个LineSymbol,它将绘制作为一条线)。 – Juffy

-1
var polygon = new Polygon(new SpatialReference({wkid:4326})); 
polygon.addRing([[-120,30],[-120,40],[-110,40],[-110,30],[-120,30]]) 

var point = new Point(-115, 35, {"spatialReference":{"wkid":4326 }}) 
polygon.contains(point); //returns true