ArcGIS API for javascript-measurement, ranging problem

Source: Internet
Author: User
Tags event listener polyline

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

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.