Hello everyone,
I would like to ask how should I set the SpatialQueryFilter() to look for different values in different columns in two layers. First FeatureLayer is "PlochyOsidleni_Final" and second is "intravilan_ZTM5".
In the first, I'm looking for a value 'Vysoký Chlumec' in the column "NAZ_CAST".
In the second value 'Víska' in the column "NAZEV".
var mv = MapView.Active;
var plochy = "PlochyOsidleni_Final";
var intravian = "intravilan_ZTM5";
var str1 = "NAZ_CAST = 'Vysoký Chlumec'";
var str2 = "NAZEV = 'Víska'";
SpatialQueryFilter sqf = new SpatialQueryFilter()
{
WhereClause = str1 + str2,
FilterGeometry = geometry,
SpatialRelationship = SpatialRelationship.Contains
};
var features = mv.GetFeatures(geometry);
var lyrI = mv.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>()
.FirstOrDefault(l => l.Name == intravian);
var lyrP = mv.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>()
.FirstOrDefault(l => l.Name == plochy);
List<FeatureLayer> editableLayers = new List<FeatureLayer>();
editableLayers.Add(lyrP);
editableLayers.Add(lyrI);
foreach (FeatureLayer editableFeatureLayer in editableLayers)
{
Table fc = editableFeatureLayer.GetTable();
int descriptionIndex = -1;
descriptionIndex = fc.GetDefinition().FindField(plochy);
using (var rowCursor = editableFeatureLayer.Select(sqf))//here show me error:'An invalid SQL statement was used.'
{
var oid = rowCursor.GetObjectIDs();When I write it like this, it throws me a mistake.
Thank you for all the advice and ideas.