ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
-
Tereha
- Завсегдатай
- Сообщения: 423
- Зарегистрирован: 15 май 2010, 06:13
- Репутация: 7
Сообщение
Tereha » 03 дек 2013, 15:44
Опубликовал слой с feature access, таблица на которой крутится сервис находится в геобазе данных sql server express.
Проверил в свойствах сервиса доступные операции: Create Delete Query Update.
Но когда смотрю свойства опубликованного сервиса через url доступа к сервису
Вижу только следующие доступные свойства
Supported Operations: Query Generate Renderer Return Updates
-
Вложения
-

- Свойства сервиса при публикации в arcgis desktop
- featureService3.jpg (183.14 КБ) 4160 просмотров
-

- Свойства опубликованного сервиса - 1
- featureService2.jpg (43.44 КБ) 4160 просмотров
-

- Свойства опубликованного сервиса 2
- featureService.jpg (142.51 КБ) 4160 просмотров
-
Tereha
- Завсегдатай
- Сообщения: 423
- Зарегистрирован: 15 май 2010, 06:13
- Репутация: 7
Сообщение
Tereha » 04 дек 2013, 09:25
MapServer не имеет таких операций. Нужно использовать FeatureServer:
Код: Выделить всё
<esri:FeatureLayer ID="События" DisableClientCaching="True"
AutoSave="False"
Url="http://terentievai:6080/ArcGIS/rest/services/chs/FeatureServer/0"
OutFields="*"
Mode="OnDemand" />
А посмотреть доступные свойства редактирования так:
-
Tereha
- Завсегдатай
- Сообщения: 423
- Зарегистрирован: 15 май 2010, 06:13
- Репутация: 7
Сообщение
Tereha » 04 дек 2013, 09:45
Теперь список доступных операций выглядит так:
Код: Выделить всё
Supported Operations: Query Apply Edits Add Features Update Features Delete Features Generate Renderer Return Updates
Но теперь другая проблема. Отредактированные данные не сохраняются в базе данных. На карту события добавляются и редактируются , но по кнопке Save edits - вроде все сохраняется и кнопка становится неактивной , но в базе данных изменений не происходит. Причем , если редактируются данные уже существующие в базе данных - окно редактирования после нажатия Ok - не закрывается. Кнопка Ok становится неактивной, активна только кнопка Delete.
В чем может быть дело?
-
Tereha
- Завсегдатай
- Сообщения: 423
- Зарегистрирован: 15 май 2010, 06:13
- Репутация: 7
Сообщение
Tereha » 04 дек 2013, 10:13
PS. Операция удаления выполняется нормально - запись удаляется и в базе геоданных тоже.
А если посмотреть здесь
и выбрать пункт
View In: ArcGIS.com Map
То отсюда события редактируются без проблем, в моей базе геобазеданных - изменения сохраняются.
-
Tereha
- Завсегдатай
- Сообщения: 423
- Зарегистрирован: 15 май 2010, 06:13
- Репутация: 7
Сообщение
Tereha » 04 дек 2013, 14:17
XAML:
Код: Выделить всё
<esri:Map x:Name="MyMap" Background="White" WrapAround="true" Extent="6095000,6810000,6900000,7258000">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter">
<ei:ChangePropertyAction TargetName="myMenuItems" PropertyName="Visibility">
<ei:ChangePropertyAction.Value>
<Visibility>Collapsed</Visibility>
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</i:EventTrigger>
</i:Interaction.Triggers>
<esri:ArcGISDynamicMapServiceLayer ID="BaseLayer"
Url="http://terentievai:6080/ArcGIS/rest/services/rk/MapServer" />
<esri:ArcGISDynamicMapServiceLayer ID="chsLayer"
Url="http://terentievai:6080/ArcGIS/rest/services/chs/MapServer" />
<esri:FeatureLayer ID="myEvents" DisableClientCaching="True"
AutoSave="False"
Url="http://terentievai:6080/ArcGIS/rest/services/chs/FeatureServer/0"
OutFields="*"
Mode="OnDemand" />
</esri:Map>
<StackPanel Orientation="Vertical" HorizontalAlignment="Right" Margin="0,80,224,0" VerticalAlignment="Top" >
<esri:EditorWidget x:Name="MyEditorWidget"
Map="{Binding ElementName=MyMap}"
Width="300"
AutoSelect="False"
AlwaysDisplayDefaultTemplates="True"
GeometryServiceUrl="http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"
ShowAttributesOnAdd="True"
Loaded="EditorWidget_Loaded"/>
</StackPanel>
code behind:
Код: Выделить всё
namespace Module2
{
public partial class MapControl : UserControl
{
public MapControl()
{
InitializeComponent();
}
private void ArcGISDynamicMapServiceLayer_Initialized(object sender, EventArgs e)
{
ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer myArcGISDynamicMapServiceLayer =
MyMap.Layers["chsLayer"] as ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer;
int[] myVisibleLayers = {0};
myArcGISDynamicMapServiceLayer.VisibleLayers = myVisibleLayers;
}
private void EditorWidget_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
string[] myLayerIDs = { "myEvents" };
MyEditorWidget.LayerIDs = myLayerIDs;
}
}
}
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей