I am new to the Javascript API, but have found it quite difficult to try to do a simple thing I am wanting to test. I have a set of points that make up a polygon. These points are in Lat/Lon (ex. x=-107.36,y=25.29). I just want to add a polygon and show it on a map, with the ESRI World Imagery base layer behind it. I can get the basemap to show, but I can't seem to find the right code to create a polygon with my lat/long points and add it to the map.
Any help?
<script type="text/javascript"> dojo.require("esri.map"); dojo.require("esri.graphic"); dojo.require("esri.geometry"); dojo.require("esri.arcgis.utils"); var map; function init() { var myExtent = new esri.geometry.Extent(-107,25,-92,36, new esri.SpatialReference({wkid:4326})); map = new esri.Map("mapDiv", {extent:esri.geometry.geographicToWebMercator(myExtent) }); var basemapURL= "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"; var basemap = new esri.layers.ArcGISTiledMapServiceLayer(basemapURL); map.addLayer(basemap); var myPolygon = new esri.geometry.Polygon(new esri.SpatialReference({wkid:4326})); myPolygon.addRing([[-99.24,28.39],[-99.24,29.37],[-99.482,29.37],[-99.24,28.39]]); var sfs = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, new dojo.Color([255,0,0]), 2),new dojo.Color([255,255,0,0.25])); map.graphics.add(myPolygon, sfs); //******How to convert coordinates?********// } dojo.addOnLoad(init); </script>
var poly_wm = esri.geometry.geographicToWebMercator(myPolygon); map.graphics.add(new esri.Graphic(poly_wm, sfs));
Check out what I posted a couple of months ago over on gis.se: http://gis.stackexchange.com/questions/2749/esri-json-polygon-ring-orientation/2750#2750
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Create a Map</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.1/js/dojo/dijit/themes/claro/claro.css"> <script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.1"></script> <script type="text/javascript"> dojo.require("esri.map"); dojo.require("esri.graphic"); dojo.require("esri.geometry"); dojo.require("esri.arcgis.utils"); var map; function init() { var myExtent = new esri.geometry.Extent(-107,25,-92,36, new esri.SpatialReference({wkid:4326})); map = new esri.Map("mapDiv", {extent:esri.geometry.geographicToWebMercator(myExtent) }); var basemapURL= "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"; var basemap = new esri.layers.ArcGISTiledMapServiceLayer(basemapURL); map.addLayer(basemap); var myPolygon = new esri.geometry.Polygon(new esri.SpatialReference({wkid:4326})); myPolygon.addRing([[-99.24,28.39],[-99.24,29.37],[-99.482,29.37],[-99.24,28.39]]); var symbol = new esri.symbol.SimpleFillSymbol().setStyle(esri.symbol.SimpleFillSymbol.STYLE_SOLID); polygonGraphic = new esri.Graphic(myPolygon, symbol); ///*** how to convert the polygon geometry????? *******//// map.graphics.add(polygonGraphic); } dojo.addOnLoad(init); </script> </head> <body class="claro"> <div id="mapDiv" style="width:900px; height:600px; border:1px solid #000;"></div> </body> </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Create a Map</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.1/js/dojo/dijit/themes/claro/claro.css"> <script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.1"></script> <script type="text/javascript"> dojo.require("esri.map"); dojo.require("esri.graphic"); dojo.require("esri.geometry"); dojo.require("esri.arcgis.utils"); var map; function init() { var myExtent = new esri.geometry.Extent(-107,25,-92,36, new esri.SpatialReference({wkid:4326})); map = new esri.Map("mapDiv", {extent:esri.geometry.geographicToWebMercator(myExtent) }); var basemapURL= "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"; var basemap = new esri.layers.ArcGISTiledMapServiceLayer(basemapURL); map.addLayer(basemap); dojo.connect(map, 'onLoad', function() { var myPolygon = new esri.geometry.Polygon(new esri.SpatialReference({wkid:4326})); myPolygon.addRing([[-99.24,28.39],[-99.24,29.37],[-99.482,29.37],[-99.24,28.39]]); // map is in web mercator so transform the geometry var poly_wm = esri.geometry.geographicToWebMercator(myPolygon); var symbol = new esri.symbol.SimpleFillSymbol().setStyle(esri.symbol.SimpleFillSymbol.STYLE_SOLID); polygonGraphic = new esri.Graphic(poly_wm, symbol); ///*** how to convert the polygon geometry????? *******//// map.graphics.add(polygonGraphic); }); } dojo.addOnLoad(init); </script> </head> <body class="claro"> <div id="mapDiv" style="width:900px; height:600px; border:1px solid #000;"></div> </body> </html>