First measurement
var map, toolbar, Geometryservice; function init () { map=new ESRI. Map ("Map", { extent:new esri.geometry.Extent ({xmin:110,ymin:31, xmax:117, ymax:37,spatialreference:{wkid:4326} }) ;//Selected spatial coordinate system range Dojo.connect (map, "OnLoad", Inittoolbar); Map.addlayer (New Esri.layers.ArcGISTiledMapServiceLayer ("url"), } function Inittoolbar (map) { toolbar = new Esri.toolbars.Draw (map); Add toolbar after completion of the event listener call domeasure dojo.connect (toolbar, "Ondrawend", domeasure); Instantiate Geometryservice, Geometryserver var geomrtryserver = "Url2" issued by AGS; Geometryservice = new Esri.tasks.GeometryService (geomrtryserver); }
Measurement function measutrelength () { toolbar.activate (Esri.toolbars.Draw.POLYLINE); } function Measutrearea () {toolbar.activate (Esri.toolbars.Draw.POLYGON);}
Acreage function domeasure (geometry) {//More type setting display style Measuregeometry = geometry; Toolbar.deactivate (); Switch (geometry.type) {case "polyline": var symbol = new Esri.symbol.SimpleLineSymbol (Esri.symbol. Simplelinesymbol.style_solid, New Dojo. Color ([0, 0, 0]), 2); Break Case "polygon": var symbol = new Esri.symbol.SimpleFillSymbol (Esri.symbol.SimpleFillSymbol.STYLE_NONE, new ES Ri.symbol.SimpleLineSymbol (Esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, New dojo. Color ([255, 0, 0]), 2), New dojo. Color ([255, 255, 0, 0.25])); Break }//Set style var graphic = new Esri. Graphic (Geometry,symbol); Clears the last Paint content map.graphics.clear (); Map.graphics.add (graphic); The projection transformation is done and the Projectcomplete measuregeometry (geometry) is called after completion; The method function Measuregeometry (geometry) {//If the lengths distance is measured for the line type if (Geometry.type = = "Polyline") is called when the projection conversion is complete {var lengthparams = new Esri.tasKs. Lengthsparameters (); Lengthparams.polylines = [geometry]; Lengthparams.lengthunit = Esri.tasks.GeometryService.UNIT_METER; Lengthparams.geodesic = true; Lengthparams.polylines[0].spatialreference = new ESRI. Spatialreference (4326); Geometryservice.lengths (Lengthparams); Dojo.connect (Geometryservice, "Onlengthscomplete", outputdistance); }//If the simplify operation is required for the polygon type to be measured in area, else if (Geometry.type = = "Polygon") {var areasandlengthparams = new Esri.tasks.AreasAndLengthsParameters (); Areasandlengthparams.lengthunit = Esri.tasks.GeometryService.UNIT_METER; Areasandlengthparams.areaunit = Esri.tasks.GeometryService.UNIT_SQUARE_METERS; THIS.OUTSR = new ESRI. Spatialreference ({wkid:102113}); Geometryservice.project ([Geometry], THIS.OUTSR, function (geometry) {geometryservice.simplify (Geometry, func tion (simplifiedgeometries) {Areasandlengthparams.poLygons = simplifiedgeometries; Areasandlengthparams.polygons[0].spatialreference = new ESRI. Spatialreference (102113); Geometryservice.areasandlengths (Areasandlengthparams); }); }); Dojo.connect (Geometryservice, "Onareasandlengthscomplete", outputareaandlength); }}//display measurement distance function outputdistance (result) {var CurX = Measuregeometry.paths[0][measuregeometry.paths[0].leng TH-1][0]; var CurY = measuregeometry.paths[0][measuregeometry.paths[0].length-1][1]; var curpos = new Esri.geometry.Point (CurX, CurY, map.spatialreference); Map.infoWindow.setTitle ("Distance Measurement"); Map.infoWindow.setContent ("Measurement length: <strong>" + parseint (String (result.lengths[0)) + "M </strong>"); Map.infoWindow.show (CurPos); }//Display measurement area function outputareaandlength (result) {var CurX = (Measuregeometry._extent.xmax + measuregeometry._ext Ent.xmin)/2; var CurY = (measuregeometry._extent. Ymax + measuregeometry._extent.ymin)/2 var curpos = new Esri.geometry.Point (CurX, CurY, map.spatialreference); Map.infoWindow.setTitle ("area measurement"); Map.infoWindow.setContent ("area: <strong>" + parseint (String (result.areas[0)) + "Square </strong> perimeter:" + parseint (String (Result.lengths[0])) + "M"); Map.infoWindow.show (CurPos); Alert ("area:" + Dojo.number.format (Result.areas[0]) + "square" + "Length:" + Dojo.number.format (Result.lengths[0]) + "M"); }
ArcGIS API for javascript-measurement, ranging problem