Seems like this should be simple... but I can not find any code samples or documentation on how to print the map that includes the selected items? The PrintParameters class does not contain a property for "OperationalLayers"?
Do I need to generate my own "Web_Map_as_JSON" string and loop through my graphics to populate the "operationaLayers" with the geometry "rings" from the selection?
Thanks,
Shad
Here is my code if it helps...
My map contains a FeatureLayer:
<esri:FeatureLayer x:Name="DC" ID="DC" MaxScale="500" MinScale="10000" Renderer="{StaticResource mySimpleRenderer2}" >
<esri:FeatureLayer.Labeling>
<esri:LabelProperties IsEnabled="True">
<esri:AttributeLabelClass MinScale="2500" TextExpression="[TAXLOT]" LabelPlacement="PolygonAlwaysHorizontal" LabelPosition="RepositionOrRemove" LabelPriority="Highest">
<esri:TextSymbol Color="Gray">
<esri:SymbolFont FontFamily="Arial" FontSize="9" FontWeight="Bold"/>
</esri:TextSymbol>
</esri:AttributeLabelClass>
</esri:LabelProperties>
</esri:FeatureLayer.Labeling>
<esri:ServiceFeatureTable Mode="Snapshot" OutFields="*"
ServiceUri="http://XXXX.XXXX.org/arcgis/rest/services/ReferenceMap/MapServer/118"/>
</esri:FeatureLayer>And I'm selecting some items:
private async void AddSelectButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
try
{
var features = await FindIntersectingFeaturesAsync();
var featureIds = features.Select(f => Convert.ToInt64(f.Attributes[DC.FeatureTable.ObjectIDField])).ToArray();
DC.SelectFeatures(featureIds);
}
catch (Exception ex)
{
MessageBox.Show("Please click on the map to make a selection", "Selection Error");
}
}
private async Task<IEnumerable<Feature>> FindIntersectingFeaturesAsync()
{
var rect = await MapView1.Editor.RequestShapeAsync(DrawShape.Polyline);
SpatialQueryFilter filter = new SpatialQueryFilter();
filter.Geometry = GeometryEngine.Project(rect, DC.FeatureTable.SpatialReference);
filter.SpatialRelationship = SpatialRelationship.Intersects;
filter.MaximumRows = 1000;
var features = await DC.FeatureTable.QueryAsync(filter);
return features;
}Finally trying to print:
private async void printMap()
{
var printTask = new PrintTask(new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%2..."));
PrintParameters printParameters = new PrintParameters(MapView1)
{
ExportOptions = new ExportOptions() { Dpi = 96, OutputSize = new Size(MapView1.ActualWidth, MapView1.ActualHeight) },
LayoutTemplate = "Letter ANSI A Portrait",
Format = "pdf",
};
var result = await printTask.PrintAsync(printParameters);
Process.Start(result.Uri.AbsoluteUri);
}