|
POST
|
Btw, I think you might want to think solution a bit differently (depending offcourse what your goal is). Since you are showing so much data, might be better way to use feature layer and dynamic layer combination to achieve the target. Ie. showing all possible data in dynamic layer and by click on the feature transfer it to the feature layer and do the needed magic there.
... View more
09-05-2012
11:30 PM
|
0
|
0
|
1756
|
|
POST
|
It seems that the limit goes around 3000-3500 and after that is starts to break. With value 3000 it seems to work fine. Attached log file.
... View more
09-05-2012
11:26 PM
|
0
|
0
|
1756
|
|
POST
|
Hi there, I tested your package and got the same issue. If I used 1000 as a max records, it works fine but with 7000 i get issues.
<Grid>
<esri:Map x:Name="_map" UseAcceleratedDisplay="True" >
<!-- ArcGIS Online Tiled Basemap Layer -->
<esri:ArcGISTiledMapServiceLayer ID="World Topo Map"
Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/>
<!--Local Feature Layer-->
<esri:ArcGISLocalFeatureLayer ID="arcGISLocalFeatureLayer"
Path="M:\ArcGIS\Databases\SOPFIM_Full.mpk" UpdateCompleted="ArcGISLocalFeatureLayer_UpdateCompleted"
LayerName="ContourQC">
</esri:ArcGISLocalFeatureLayer>
</esri:Map>
<StackPanel>
<TextBlock x:Name="txtBlock" VerticalAlignment="Top" HorizontalAlignment="Left"></TextBlock>
<TextBlock x:Name="countBlock" VerticalAlignment="Top" HorizontalAlignment="Left"></TextBlock>
</StackPanel>
</Grid>
public MainWindow()
{
var localFeatureService = new LocalFeatureService()
{
MaxRecords = 10000,
Path = @"M:\ArcGIS\Databases\SOPFIM_Full.mpk",
};
localFeatureService.Start();
InitializeComponent();
}
private void ArcGISLocalFeatureLayer_UpdateCompleted(object sender, System.EventArgs e)
{
var layer = (sender as ArcGISLocalFeatureLayer);
this.txtBlock.Text = layer.ExceededTransferLimit.ToString();
this.countBlock.Text = layer.Graphics.Count.ToString();
}
... View more
09-05-2012
09:58 PM
|
0
|
0
|
1756
|
|
POST
|
Like vpitzi said, Use AcceleratedDisplay and be sure that the symbol that use is supported by the Acceleration. Also check from Samples Mapping / Accelerated Display examples. http://resources.arcgis.com/en/help/runtime-wpf/apiref/index.html?ESRI.ArcGIS.Client~ESRI.ArcGIS.Client.Map~UseAcceleratedDisplay.html
... View more
09-02-2012
11:24 PM
|
0
|
0
|
704
|
|
POST
|
Last information that I have is that Runtime for Qt is frozen at the moment. The message in the Developer Summit 2012 was that there was not enough (business) demand for Qt, so they froze the development and the team stated to build current view engine to Java and WPF runtimes. They also said, that they might return to Qt-runtime if time was correct after the Wpf/Jave runtimes have released but I haven't heard anything about that...
... View more
09-02-2012
11:18 PM
|
0
|
0
|
888
|
|
POST
|
Hi there! MainWindow.xaml.cs is most likely correct palace but some things to note: In your case, you can just copy needed code to code-behind after the MainWindow's Constructor private void RedlandsButton_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("You found Redlands");
}
After that you codebehind shoud look more or less like this (just writing out from my head) public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void RedlandsButton_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("You found Redlands");
}
}
In Wpf, you are using Window control instead of the UserControl so in the code behind public partial class ElementLayer : UserControl Here ElementLayer defines the name of the class that should be in your case MainWindow. If you are using Window as your control base, then UserControl should be Window. I would say that follow more ArcGIS Runtime for WPF 1.0 samples that you can find from your computer after you have installed Runtime development tools: Start -> All Programs -> ArcGIS -> Runtime SDK 1.0 for WPF ->ArcGIS Runtime WPF Samples 1.0
... View more
08-14-2012
10:16 PM
|
0
|
0
|
619
|
|
POST
|
One option that you can do is to implement some kind of windowing system to your application. I have used http://www.codeproject.com/Articles/121488/FloatingWindow-Multi-windows-Interface-for-Silverl as a base for our implementation and it works very well.
... View more
08-09-2012
05:16 AM
|
0
|
0
|
607
|
|
POST
|
�?sh, I tested this with
<Grid>
<Grid>
<esri:Map x:Name="map">
<esri:ArcGISTiledMapServiceLayer ID="PhysicalTiledLayer"
Url="http://gisservices.inbo.be/ArcGIS/rest/services/Orthofoto/MapServer"/>
<esri:ArcGISDynamicMapServiceLayer ID="MyLayer"
Url="http://gisservices.inbo.be/ArcGIS/rest/services/Viewer_overview/MapServer" VisibleLayers="1,2" />
</esri:Map>
</Grid>
<Button Click="Button_Click" Height="20" Width="40" HorizontalAlignment="Left">Move</Button>
</Grid>
private void Button_Click(object sender, RoutedEventArgs e)
{
var layer = this.map.Layers[0];
var index = map.Layers.IndexOf(layer);
map.MoveLayer(index, index + 1);
//if (layer is ArcGISTiledMapServiceLayer)
//{
// (layer as ArcGISTiledMapServiceLayer).Refresh();
//}
//else if (layer is ArcGISDynamicMapServiceLayer)
//{
// (layer as ArcGISDynamicMapServiceLayer).Refresh();
//}
}
And moving works fine so no need for extra refresh here.
... View more
08-08-2012
03:55 AM
|
0
|
0
|
2063
|
|
POST
|
Hi, You can call .Refresh() on layers to update (Tiled, Dynamic, Feature layers atleast) like this:
<Grid>
<Grid>
<esri:Map x:Name="map">
<esri:ArcGISTiledMapServiceLayer ID="TileLayer"
Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/>
<esri:ArcGISDynamicMapServiceLayer ID="DynamicLayer"
Url="http://maverick.arcgis.com/ArcGIS/rest/services/World_WGS84/MapServer" VisibleLayers="1,2" />
</esri:Map>
</Grid>
<Button Click="Button_Click" Height="20" Width="40" HorizontalAlignment="Left">Move</Button>
</Grid>
private void Button_Click(object sender, RoutedEventArgs e)
{
var layer = this.map.Layers[0];
var index = map.Layers.IndexOf(layer);
map.MoveLayer(index, index + 1);
if (layer is ArcGISTiledMapServiceLayer)
{
(layer as ArcGISTiledMapServiceLayer).Refresh();
}
else if (layer is ArcGISDynamicMapServiceLayer)
{
(layer as ArcGISDynamicMapServiceLayer).Refresh();
}
}
The code is ugly, but you get the point.
... View more
08-08-2012
03:28 AM
|
0
|
0
|
2063
|
|
POST
|
There are three one day seminars for developers in Europe this autumn http://www.esri.com/events/devsummit-europe/index.html Who is going to participate and does someone know if the there are sessions about Runtime? I am not sure if I get permission to go, but I would be interested to meet other WPF/Silverlight/WP developers if I get Ok from the superiors.
... View more
08-07-2012
09:10 PM
|
0
|
2
|
1196
|
|
POST
|
I am not aware that using PointDataSource is the preferred way to go with MVVM since. From the experience that I have got with working mainly with Silverlight, is that you can work with Graphic's in the ViewModels with no problem and there is no need to build a lot of extra-work-a-rounds since you can bind the graphics directly. I would be interested if other peoples have different view to this topic. You can use quite a lot of different approaches here but I have been using GraphicCollection or ObservableCollection<Graphic> that I bind directly in XAML to graphics layer. You can look how you can do that from here http://forums.arcgis.com/threads/63189-GpsLayer-and-MVVM-issues?p=220140&viewfull=1#post220140 With this kind of approach you can easily use other stuff like Task's in very mannered way from the ViewModels (or from the application services since you probably won't want to bloat your VM's code with all that stuff). Also one good way to abstract association code with the Graphics is to create custom list like in the "Using GraphicsSource Online"-example in the Samples. Hope this helps. Edit: Jeff Jackson kept very good tutorial to MVVM development in Developer summit. I encourage people to check it out http://video.arcgis.com/watch/1185/software-development-and-design-using-mvvm
... View more
08-07-2012
04:51 AM
|
0
|
0
|
2546
|
|
POST
|
If you want to add Layers to the list you need to copy needed code to your project. In this case you could copy following code from the example <Border Background="#77919191" BorderThickness="1" CornerRadius="5" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="20" Padding="5" BorderBrush="Black" > <ListBox x:Name="MyList" ItemsSource="{Binding ElementName=MyMap, Path=Layers}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <!--Layer visibility checkbox--> <CheckBox IsChecked="{Binding Visible, Mode=TwoWay}" /> <!--Opacity slider--> <Slider Margin="-5,0,0,0" Minimum="0" Maximum="1" Width="30" Value="{Binding Opacity, Mode=TwoWay}" Height="18" /> <!--Layer name--> <TextBlock Text="{Binding ID, Mode=OneWay}" Margin="5,0,0,0" > <!-- Tooltip on hover--> <ToolTipService.ToolTip> <StackPanel MaxWidth="400"> <TextBlock FontWeight="Bold" Text="{Binding CopyrightText}" TextWrapping="Wrap" /> <TextBlock Text="{Binding Description}" TextWrapping="Wrap" /> </StackPanel> </ToolTipService.ToolTip> </TextBlock> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </Border> and paste it to right after your Map-control in the XAML. In this case, all needed code is done in XAML and no code is located in the code behind file. So, when your code is like it was on my previous post, copy needed code after </esri:Map>
... View more
08-07-2012
02:22 AM
|
0
|
0
|
1448
|
|
POST
|
Interesting since the WmsLayer's GetUrl-method takes height and width as a integers and the values are added to the query string from integers
public override void GetUrl(ESRI.ArcGIS.Client.Geometry.Envelope extent, int width, int height,
DynamicMapServiceLayer.OnUrlComplete onComplete)
{
int extentWKID = (extent.SpatialReference != null) ? extent.SpatialReference.WKID : 0;
string baseUrl = MapUrl ?? Url;
StringBuilder mapURL = new StringBuilder(baseUrl);
if (!baseUrl.Contains("?"))
mapURL.Append("?");
else if (!baseUrl.EndsWith("&"))
mapURL.Append("&");
mapURL.Append("SERVICE=WMS&REQUEST=GetMap");
mapURL.AppendFormat("&WIDTH={0}", width);
mapURL.AppendFormat("&HEIGHT={0}", height);
<Snip>
Did I miss something here?
... View more
08-07-2012
12:04 AM
|
0
|
0
|
1232
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 11-12-2014 03:52 AM | |
| 1 | 08-27-2015 03:47 AM | |
| 1 | 12-08-2014 09:58 AM | |
| 1 | 05-05-2015 10:19 AM | |
| 1 | 07-30-2015 08:43 AM |
| Online Status |
Offline
|
| Date Last Visited |
11-11-2020
02:23 AM
|