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>
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.