<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.6/js/dojo/dijit/themes/tundra/tundra.css"> <style> html, body { height: 100%; width: 100%; margin: 0; padding: 0; } </style> <script src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6" type="text/javascript"></script> <script type="text/javascript"> dojo.require("esri.map"); var map = null; var gsvc = null; var qtask = null; var polygonGraphic = null; var queryGraphic = null; function initialize() { map = new esri.Map("map"); dojo.connect(map, "onLoad", function () { drawPolygon(); }); var layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); map.addLayer(layer); map.setExtent(new esri.geometry.Extent({"xmin":-115.960,"ymin":36.524,"xmax":-115.734,"ymax":36.648,"spatialReference":{"wkid":4269}})); gsvc = new esri.tasks.GeometryService("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"); qtask = new esri.tasks.QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/0"); } function drawPolygon() { var polygon = {"rings":[[ [-115.930, 36.540], [-115.740, 36.540], [-115.740, 36.640], [-115.930, 36.640], [-115.930, 36.540] ]], "spatialReference":{" wkid":4269}}; var polygon = new esri.geometry.Polygon(polygon); var symbol = new esri.symbol.SimpleFillSymbol().setStyle(esri.symbol.SimpleFillSymbol.STYLE_SOLID); polygonGraphic = new esri.Graphic(polygon, symbol); map.graphics.add(polygonGraphic); } function doQuery() { var query = new esri.tasks.Query(); query.spatialRelationship = esri.tasks.Query.SPATIAL_REL_CONTAINS; query.geometry = polygonGraphic.geometry; query.returnGeometry = true; qtask.execute(query, queryCallback); } function queryCallback(featureSet) { var symbol = new esri.symbol.SimpleMarkerSymbol(); symbol.style = esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE; symbol.setSize(8); symbol.setColor(new dojo.Color([255,255,0,0.5])); var features = featureSet.features; dojo.forEach(features, function(feature) { feature.setSymbol(symbol); map.graphics.add(feature); }); } dojo.addOnLoad(initialize); </script> </head> <body class="tundra"> <input type="button" value="Query for points within the polygon graphic." onclick="doQuery();" /> <div id="map" style="width:1000px; height:600px; border:1px solid #000;"></div> </body> </html>
There are a few issues...
-your doSimplify function is never used
-you don't need to pass in your polygonGraphic to doQuery since polygonGraphic is global
I put together a working example using services hosted by esri:<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.6/js/dojo/dijit/themes/tundra/tundra.css"> <style> html, body { height: 100%; width: 100%; margin: 0; padding: 0; } </style> <script src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6" type="text/javascript"></script> <script type="text/javascript"> dojo.require("esri.map"); var map = null; var gsvc = null; var qtask = null; var polygonGraphic = null; var queryGraphic = null; function initialize() { map = new esri.Map("map"); dojo.connect(map, "onLoad", function () { drawPolygon(); }); var layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"); map.addLayer(layer); map.setExtent(new esri.geometry.Extent({"xmin":-115.960,"ymin":36.524,"xmax":-115.734,"ymax":36.648,"spatialReference":{"wkid":4269}})); gsvc = new esri.tasks.GeometryService("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"); qtask = new esri.tasks.QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/0"); } function drawPolygon() { var polygon = {"rings":[[ [-115.930, 36.540], [-115.740, 36.540], [-115.740, 36.640], [-115.930, 36.640], [-115.930, 36.540] ]], "spatialReference":{" wkid":4269}}; var polygon = new esri.geometry.Polygon(polygon); var symbol = new esri.symbol.SimpleFillSymbol().setStyle(esri.symbol.SimpleFillSymbol.STYLE_SOLID); polygonGraphic = new esri.Graphic(polygon, symbol); map.graphics.add(polygonGraphic); } function doQuery() { var query = new esri.tasks.Query(); query.spatialRelationship = esri.tasks.Query.SPATIAL_REL_CONTAINS; query.geometry = polygonGraphic.geometry; query.returnGeometry = true; qtask.execute(query, queryCallback); } function queryCallback(featureSet) { var symbol = new esri.symbol.SimpleMarkerSymbol(); symbol.style = esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE; symbol.setSize(8); symbol.setColor(new dojo.Color([255,255,0,0.5])); var features = featureSet.features; dojo.forEach(features, function(feature) { feature.setSymbol(symbol); map.graphics.add(feature); }); } dojo.addOnLoad(initialize); </script> </head> <body class="tundra"> <input type="button" value="Query for points within the polygon graphic." onclick="doQuery();" /> <div id="map" style="width:1000px; height:600px; border:1px solid #000;"></div> </body> </html>
What is the error message?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.6/js/dojo/dijit/themes/tundra/tundra.css">
<style>
html, body { height: 100%; width: 100%; margin: 0; padding: 0; }
</style>
<script src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6" type="text/javascript"></script>
<script type="text/javascript">
dojo.require("esri.map");
var map = null;
var gsvc = null;
var qtask = null;
var polygonGraphic = null;
var queryGraphic = null;
function initialize() {
map = new esri.Map("map");
dojo.connect(map, "onLoad", function () {
drawPolygon();
});
var layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/PublicSafety/PublicSafetyBasemap/MapServer/");
map.addLayer(layer);
map.setExtent(new esri.geometry.Extent({"xmin":-85.96,"ymin":37.985,"xmax":-85.385,"ymax":38.393,"spatialReference":{"wkid":4326}}));
gsvc = new esri.tasks.GeometryService("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
qtask = new esri.tasks.QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/PublicSafety/PublicSafetyBasemap/MapServer/12");
}
function drawPolygon() {
var polygon = {"rings":[[
[-85.950, 38.000], [-85.0, 37.9],
[-85.440, 38.540],
[-85.740, 38.640],
[-85.930, 38.640],
[-85.950, 38.000]
]],
"spatialReference":{" wkid":4326}};
var polygon = new esri.geometry.Polygon(polygon);
var symbol = new esri.symbol.SimpleFillSymbol().setStyle(esri.symbol.SimpleFillSymbol.STYLE_SOLID);
polygonGraphic = new esri.Graphic(polygon, symbol);
map.graphics.add(polygonGraphic);
}
function doQuery() {
var query = new esri.tasks.Query();
query.spatialRelationship = esri.tasks.Query.SPATIAL_REL_TOUCHES;
query.geometry = polygonGraphic.geometry;
query.returnGeometry = true;
qtask.execute(query, queryCallback);
alert("hidoQ");
}
function queryCallback(featureSet) {
var symbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,0]), 5);
var features = featureSet.features;
alert("1");
dojo.forEach(features, function(feature){feature.setSymbol(symbol); map.graphics.add(features);
alert("5");
});
}
dojo.addOnLoad(initialize);
</script>
</head>
<body class="tundra">
<input type="button" value="Query for points within the polygon graphic." onClick="doQuery();" />
<div id="map" style="width:800px; height:400px; border:1px solid #000;"></div>
</body>
</html>
What is the error message?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.6/js/dojo/dijit/themes/tundra/tundra.css">
<style>
html, body { height: 100%; width: 100%; margin: 0; padding: 0; }
</style>
<script src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6" type="text/javascript"></script>
<script type="text/javascript">
dojo.require("esri.map");
var map = null;
var gsvc = null;
var qtask = null;
var polygonGraphic = null;
var polygonGraphic2 = null;
var queryGraphic = null;
var extent = null;
function initialize() {
map = new esri.Map("map");
dojo.connect(map, "onLoad", function () {
drawPolygon();
drawPolygon2();
});
var layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer");
map.addLayer(layer);
extent = map.setExtent(new esri.geometry.Extent({"xmin":-115.960,"ymin":36.524,"xmax":-115.734,"ymax":36.648,"spatialReference":{"wkid":4269}}));
gsvc = new esri.tasks.GeometryService("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
qtask = new esri.tasks.QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/0");
}
function drawPolygon() {
var polygon = {"rings":[[
[-115.930, 36.540],
[-115.740, 36.540],
[-115.740, 36.640],
[-115.930, 36.640],
[-115.930, 36.540]
]],
"spatialReference":{" wkid":4269}};
var polygon = new esri.geometry.Polygon(polygon);
var symbol = new esri.symbol.SimpleFillSymbol().setStyle(esri.symbol.SimpleFillSymbol.STYLE_NULL);
polygonGraphic = new esri.Graphic(polygon, symbol);
map.graphics.add(polygonGraphic);
}
function drawPolygon2() {
var polygon2 = {"rings":[[
[-115.950, 36.520],
[-115.740, 36.520],
[-115.740, 36.650],
[-115.950, 36.650],
[-115.950, 36.520]
]],
"spatialReference":{" wkid":4269}};
var polygon2 = new esri.geometry.Polygon(polygon2);
var symbol2 = new esri.symbol.SimpleFillSymbol().setStyle(esri.symbol.SimpleFillSymbol.STYLE_CROSS);
polygonGraphic2 = new esri.Graphic(polygon2, symbol2);
map.graphics.add(polygonGraphic2);
}
function doQuery() {
var query = new esri.tasks.Query();
query.spatialRelationship = esri.tasks.Query.SPATIAL_REL_CONTAINS;
query.geometry = polygonGraphic2.geometry;
query.returnGeometry = true;
qtask.execute(query, queryCallback);
}
function queryCallback(featureSet) {
var symbol = new esri.symbol.SimpleMarkerSymbol();
symbol.style = esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE;
symbol.setSize(15);
symbol.setColor(new dojo.Color([255,255,0,0.5]));
var features = featureSet.features;
dojo.forEach(features, function(feature) {
feature.setSymbol(symbol);
map.graphics.add(feature);
});
}
dojo.addOnLoad(initialize);
</script>
</head>
<body class="tundra">
<input type="button" value="Query for points within the polygon graphic." onclick="doQuery();" />
<div id="map" style="width:1000px; height:600px; border:1px solid #000;"></div>
</body>
</html>