public static List<String> listUrl = new List<string>();
int intUrlCount;
private void Query_Click(object sender, RoutedEventArgs e)
{
listUrl.Add("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/0");
listUrl.Add("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/1");
listUrl.Add("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/2");
intUrlCount = listUrl.Count;
GraphicsLayer graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer;
graphicsLayer.Graphics.Clear();
TabControl.Visibility = Visibility.Visible;
if (intUrlCount != 0)
{
for (int i = 0; i < intUrlCount; i++)
{
string url = listUrl[i];
QueryTask queryTask = new QueryTask(url);
//queryTask.ExecuteCompleted += QueryTask_AllExecuteCompleted;
queryTask.ExecuteCompleted+=QueryTask_ExecuteCompleted;
ESRI.ArcGIS.Client.Tasks.Query query = new ESRI.ArcGIS.Client.Tasks.Query();
query.Text = texboxname.Text;
query.ReturnGeometry = true;
query.OutSpatialReference = MyMap.SpatialReference;
query.OutFields.Add("*");
queryTask.ExecuteAsync(query);
}
}
}
void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args)
{
FeatureSet featureSet = args.FeatureSet;
s = args.FeatureSet;
List<string> a =new List<string>();
for (int i=0;i<featureSet.Features.Count ;i++)
{
a.Add(featureSet.Features[i].Attributes["NAME"].ToString());
}
if (featureSet != null && featureSet.Features.Count > 0)
dataG.ItemsSource = featureSet.Features;
else
MessageBox.Show("No features returned from query");
}
private void QueryTask_AllExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args)
{
QueryTask objQueryTask = sender as QueryTask;
//queryTask.ExecuteCompleted -= QueryTask_AllExecuteCompleted;
intUrlCount--;
FeatureSet pFeatureSet = objQueryTask.LastResult;
FeatureSet objFeatureSet = args.FeatureSet;
s = args.FeatureSet;
if (pFeatureSet.Features.Count == 0)
{
if (intUrlCount == 0 && objFeatureSet.Features.Count == 0)
{
MessageBox.Show("没有查询到数据!");
}
return;
}
//GraphicsLayer pGraphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer;
//if (objFeatureSet != null && objFeatureSet.Features.Count > 0)
//{
// pGraphicsLayer.Graphics.Clear();
// foreach (Graphic pFeature in objFeatureSet.Features)
// {
// // pFeature.MapTip = CreatVehicleHistoryTips(pFeature.Attributes["OBJCODE"].ToString(), pFeature.Attributes["OBJNAME"].ToString(), pFeature.Attributes["DEPTNAME1"].ToString(), pFeature.Attributes["DEPTNAME2"].ToString(), pFeature.Attributes["DEPTNAME3"].ToString(), pFeature.Attributes["PICTURE"].ToString(), pFeature.Attributes["OBJDESC"].ToString(), pFeature.Attributes["MATERIAL"].ToString());
// if ((pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.Polygon) || (pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.Polyline) || (pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.MultiPoint))
// {
// pFeature.Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as FillSymbol;
// pGraphicsLayer.Graphics.Insert(0, pFeature);
// }
// }
// foreach (Graphic pFeature in objFeatureSet.Features)
// {
// // pFeature.MapTip = CreatVehicleHistoryTips(pFeature.Attributes["OBJCODE"].ToString(), pFeature.Attributes["OBJNAME"].ToString(), pFeature.Attributes["DEPTNAME1"].ToString(), pFeature.Attributes["DEPTNAME2"].ToString(), pFeature.Attributes["DEPTNAME3"].ToString(), pFeature.Attributes["PICTURE"].ToString(), pFeature.Attributes["OBJDESC"].ToString(), pFeature.Attributes["MATERIAL"].ToString());
// if ((pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.MapPoint))
// {
// pFeature.Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as FillSymbol;
// pGraphicsLayer.Graphics.Insert(0, pFeature);
// }
// }
// // ResultsDisplay.Visibility = Visibility.Visible;
//}
this.dataG.ItemsSource = null;
this.dataG.UpdateLayout();
this.dataG.ItemsSource = objFeatureSet.Features;
}
private void FindDetails_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Highlight the graphic feature associated with the selected row
DataGrid dataGrid = sender as DataGrid;
int selectedIndex = dataGrid.SelectedIndex;
if (selectedIndex > -1)
{
FeatureSet featureSet = s;
GraphicsLayer pGraphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer;
if (featureSet != null && featureSet.Features.Count > 0)
{
pGraphicsLayer.Graphics.Clear();
Graphic pFeature = featureSet.Features[selectedIndex];
// pFeature.MapTip = CreatVehicleHistoryTips(pFeature.Attributes["OBJCODE"].ToString(), pFeature.Attributes["OBJNAME"].ToString(), pFeature.Attributes["DEPTNAME1"].ToString(), pFeature.Attributes["DEPTNAME2"].ToString(), pFeature.Attributes["DEPTNAME3"].ToString(), pFeature.Attributes["PICTURE"].ToString(), pFeature.Attributes["OBJDESC"].ToString(), pFeature.Attributes["MATERIAL"].ToString());
if ((pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.Polygon) || (pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.Polyline) || (pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.MultiPoint))
{
pFeature.Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as FillSymbol;
pGraphicsLayer.Graphics.Insert(0, pFeature);
}
// pFeature.MapTip = CreatVehicleHistoryTips(pFeature.Attributes["OBJCODE"].ToString(), pFeature.Attributes["OBJNAME"].ToString(), pFeature.Attributes["DEPTNAME1"].ToString(), pFeature.Attributes["DEPTNAME2"].ToString(), pFeature.Attributes["DEPTNAME3"].ToString(), pFeature.Attributes["PICTURE"].ToString(), pFeature.Attributes["OBJDESC"].ToString(), pFeature.Attributes["MATERIAL"].ToString());
if ((pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.MapPoint))
{
pFeature.Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as FillSymbol;
pGraphicsLayer.Graphics.Insert(0, pFeature);
}
// ResultsDisplay.Visibility = Visibility.Visible;
}
}
}
查询
最新推荐文章于 2024-09-14 14:47:06 发布