<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>
<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?
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 globalI 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>
<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>
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.