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>