POST
|
Hi, ArcGIS Locators either search specific fields or the single line address field. If you try specifying just a partial address in each field I suspect the matches are likely to be too vague and therefore no results returned (i.e. they do not match minimum required match score). You should use either: #. The single-line address field e.g http://resources.arcgis.com/en/help/runtime-wpf/samples/index.html#/Geocode/02q2000000nw000000/ OR #. Multiple address fields e.g. http://resources.arcgis.com/en/help/runtime-wpf/samples/index.html#/Geocode_Online/02q2000000mq000000/ Cheers Mike Hi Mike, Maybe i wasn't clear but my attempt was on ESRI sample "single-line address" (version 10.1) and tried to enter a partial address string "2011 MISSION ST" - (No results) "2011 MISSION ST, SAN FRANCISCO" - (No results) "2011 MISSION ST, SAN FRANCISCO CA" - (No results) "2011 MISSION ST, SAN FRANCISCO CA 94110" (only full text return results - why???) Are you saying that those searches, all of them are too vague? can i tell the locator to return even results with low score (change the minimum required match score)
... View more
06-07-2014
10:58 PM
|
0
|
0
|
833
|
POST
|
Hi, I would recommend using the Single-line address approach - http://resources.arcgis.com/en/help/main/10.2/index.html#//002500000022000000. Otherwise you will need to create a UI with specific fields for the individual elements of the address text and match those with the address fields exposed by the locator. Cheers Mike Maybe i am missing a basic knowledge about locators... This approach was my first test to search address with part of the text given in the local geocoding sample. But it does not work... (didn't get any results - a dialog pops with no results message) instead of ("2011 MISSION ST, SAN FRANCISCO CA 94110", tried "2011 MISSION")
... View more
06-02-2014
03:52 AM
|
0
|
0
|
833
|
POST
|
Hi, Is there a way to locate address location by only partially search text? I have tried the sample code (changed address Parameters): if the search text is for example "2011 MISSION ST" i get no results... how can i do this? public LocalGeocode() { InitializeComponent(); FindText.Text = "1455 MARKET ST, SAN FRANCISCO, CA 94103"; FindText.Items.Add("2011 MISSION ST, SAN FRANCISCO CA 94110"); FindText.Items.Add("820 BRYANT ST, SAN FRANCISCO CA 94103"); FindText.SelectedIndex = 0; _locationGraphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; LocalGeocodeService.GetServiceAsync("..\\Data\\Locators\\SanFrancisco\\SanFranciscoLocator.gcpk", "SanFranciscoLocator", (gs) => { if (gs.Error != null) { MessageBox.Show(gs.Error.Message); } if (gs.Status == LocalServiceStatus.Running) { _localGeocodeService = gs; ExecuteButton.IsEnabled = true; DataContext = this; IsBusy = false; } }); } private void ExecuteButton_Click(object sender, RoutedEventArgs e) { IsBusy = true; var searchText = FindText.Text; Locator locatorTask = new Locator(_localGeocodeService.UrlGeocodeService); locatorTask.AddressToLocationsCompleted += (object sender1, AddressToLocationsEventArgs args) => { if (args.Results.Count > 0) { AddressCandidate bestCandidate = args.Results[0]; foreach (AddressCandidate candidate in args.Results) bestCandidate = (candidate.Score > bestCandidate.Score) ? candidate : bestCandidate; MapPoint geographicPoint = new MapPoint(bestCandidate.Location.X, bestCandidate.Location.Y, new SpatialReference(4326)); Graphic graphic = new Graphic() { Geometry = geographicPoint, Symbol = LayoutRoot.Resources["StrobeMarkerSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol }; _locationGraphicsLayer.Graphics.Clear(); _locationGraphicsLayer.Graphics.Add(graphic); IsBusy = false; } else { MessageBox.Show("No results found"); IsBusy = false; } }; locatorTask.Failed += (s2, e2) => { MessageBox.Show("Geocode failed with error: " + e2.Error.Message); }; AddressToLocationsParameters addressParameters = new AddressToLocationsParameters(); Dictionary<string, string> address = addressParameters.Address; //address.Add("Single Line Input", searchText); instead of this line i have tried searching foreach (var addressField in _localGeocodeService.AddressesFields) { address.Add(addressField.Name, searchText); } locatorTask.AddressToLocationsAsync(addressParameters); } }
... View more
06-01-2014
07:00 AM
|
0
|
5
|
2259
|
POST
|
Hi, thanks for replying. I have followed the sample you gave me, and it works fine. But now i have lost functionality of the legend when check/uncheck the group layer check box which the feature layer became its child after the replacement. Should i handle it myself now? or there is something else i could do?
... View more
03-23-2014
06:50 AM
|
0
|
0
|
439
|
POST
|
Hi, I have an interactive legend with check-box for each layer (like in samples) [HTML]<esri:Legend Map="{Binding ElementName=MyMap}" LayerIDs="USA" LayerItemsMode="Tree" ShowOnlyVisibleLayers="False" Refreshed="Legend_Refreshed"> <esri:Legend.MapLayerTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <CheckBox Content="{Binding Label}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" IsEnabled="{Binding IsInScaleRange}" > </CheckBox> <Slider Maximum="1" Value="{Binding Layer.Opacity, Mode=TwoWay}" Width="50" /> </StackPanel> </DataTemplate> </esri:Legend.MapLayerTemplate> <esri:Legend.LayerTemplate> <DataTemplate> <CheckBox Content="{Binding Label}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" IsEnabled="{Binding IsInScaleRange}" > </CheckBox> </DataTemplate> </esri:Legend.LayerTemplate> </esri:Legend>[/HTML] I have an arcGISDynamicMapService which i took one of its childLayer and made it invisible. also added it as FeatureLayer to my map. The legend is showing me both the hidden layer and the featureLayer - i want to change bindings of this specific layer only in order to influence only the feature layer visibility and keep the original layer hidden. (But keep the regular bindings to the other layers) Note: i have removed the featureLayer from legend - i want the user see it in the original service hierarchy. Any ideas?
... View more
03-20-2014
08:32 AM
|
0
|
3
|
2955
|
POST
|
Hi, I have 2 questions... 1. I have a legend which declared with checkboxes for layers visibility (see XAML). and i have a function which zoom to maximumScale of a given FeatureLayer. (see code below) When i call the function it zoom to the maximum featureLayer scale and i see on map its graphics (it is still visible and did not disappeared), but the legend checkbox is not enabled (guessing the IsInScaleRange property returns false) what am i missing (if i see it on map it should also be enabled on legend - right)? 2. Is it possible to register an event or some other way of handling when a checkbox is checked on a layerItem in order to reverse the check action on a specific layerItem? XAML: [HTML]<esri:Legend Map="{Binding ElementName=_map}" Name="_Legend" LayerItemsMode="Tree" ShowOnlyVisibleLayers="False" Refreshed="Legend_Refreshed"> <esri:Legend.LayerTemplate> <DataTemplate> <CheckBox Content="{Binding Label}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" IsEnabled="{Binding IsInScaleRange}" > </CheckBox> </DataTemplate> </esri:Legend.LayerTemplate> </esri:Legend>[/HTML] Code: internal void ZoomTo(FeatureLayer layer)
{
if (layer != null)
{
double resolution = _map.MinimumResolution;
if (layer.LayerInfo.MaximumScale != 0)
{
double scaleTo = Math.Round(layer.LayerInfo.MaximumScale * _map.ZoomFactor);
double calcResolution = (_map.Resolution / _map.Scale) * scaleTo;
MapPoint myMapPoint = _map.Extent.GetCenter();
double xMin = myMapPoint.X - (_map.ActualWidth * calcResolution * (1 / _map.ZoomFactor));
double yMin = myMapPoint.Y - (_map.ActualHeight * calcResolution * (1 / _map.ZoomFactor));
double xMax = myMapPoint.X + (_map.ActualWidth * calcResolution * (1 / _map.ZoomFactor));
double yMax = myMapPoint.Y + (_map.ActualHeight * calcResolution * (1 / _map.ZoomFactor));
ESRI.ArcGIS.Client.Geometry.Envelope myEnvelope = new ESRI.ArcGIS.Client.Geometry.Envelope(xMin, yMin, xMax, yMax);
_map.ZoomTo(myEnvelope);
}
else
{
_map.ZoomToResolution(resolution, _map.Extent.GetCenter());
}
}
}
... View more
02-11-2014
06:39 AM
|
0
|
0
|
2883
|
POST
|
Hi, I'm not entirely sure what you mean - dynamic map services effectively have a continuous zoom and therefore the number of levels is your choice. Cheers Mike Hi Mike, Thanks for replying. I have set a min and max resolutions to map control so i have about 10 scale levels. How do i calculate those possible scales? I have attached an image to demonstrate what i mean. hope this helps to understand. Lets say for simplicity that i want to show them to a user in a combo to select from. [ATTACH=CONFIG]30420[/ATTACH]
... View more
01-11-2014
10:16 PM
|
0
|
0
|
320
|
POST
|
Hi, I have loaded MPK file to localMapService and want to calculate how many levels of zooming do i have. Is it possible? My main task is to receive from a user the zoom level (integer) he want to zoom to, and i can't figure it out if it possible to calculate the extent according to required zoom level.
... View more
01-07-2014
04:09 AM
|
0
|
2
|
972
|
POST
|
Hi, Do you mean you would like to set the equivalent of a reference scale in ArcMap, where symbols remain a fixed size beyond a specific scale? Cheers Mike Hi Mike, Sorry don't familiar with the "reference scale in ArcMap"... I meant that i want to be able calculate and change the symbol width and height according to current resolution/scale map. and not see a fixed size in all resolutions.
... View more
01-07-2014
03:57 AM
|
0
|
0
|
336
|
POST
|
I am adding an existing feature layer which its renderer contains PictureMarkerSymbol symbols. How do i scale the symbol pictures according to map zoom in/out?
... View more
01-01-2014
06:06 AM
|
0
|
3
|
3389
|
POST
|
Thank you for responding, Yes i am familiar with this example, but it does not meet my requirements. Lets make the question simple... I want to load mpk file to my MapControl and having the ability to know when the user clicked on Graphic. How do i do that?
... View more
12-29-2013
10:49 PM
|
0
|
0
|
366
|
POST
|
Hi all, I am developing a generic map loader which get as a parameter a path to a MPK file (i don't know what each MPK consists of) I am trying to load a custom MPK with its features Layers, and i have encountered several problems: 1. if i load the mpk to ArcGISLocalDynamicMapServiceLayer the map displaying well but i can't interact with map (Clicking ect..) 2. If i load the mpk according to ArcGISLocalDynamicMapServiceLayer.Layers (Attached code) - each one of the layers into FeatureLayer it is not displaying well (polygons of some layers are not seen). 3. A Graphic Symbol of each one of the featureLayer.Graphics return null (this did not happen with 10.1) What is the best way to load a custom local map and its features? if (layer is ArcGISLocalDynamicMapServiceLayer) { LocalMapService.GetServiceAsync(layerURI, (localMapService) => { ArcGISLocalDynamicMapServiceLayer localLayer = layer as ArcGISLocalDynamicMapServiceLayer; localLayer.EnableDynamicLayers = true; localLayer.Service = localMapService; localLayer.Initialize(); localLayer.Initialized += new EventHandler<EventArgs>(localLayer_Initialized); } } void localLayer_Initialized(object sender, EventArgs e) { ArcGISLocalDynamicMapServiceLayer localMapService = sender as ArcGISLocalDynamicMapServiceLayer; if (localMapService != null) { List<LayerInfo> layers = localMapService.Layers.Reverse().ToList(); foreach (LayerInfo layerInfo in layers) { if (layerInfo.SubLayerIds == null || layerInfo.SubLayerIds.Length == 0) { ArcGISLocalFeatureLayer ftLayer= new ArcGISLocalFeatureLayer(localMapService.Service, layerInfo.ID); //this is not affecting visibility of the layer ??? why? ftLayer.Visible = layerInfo.DefaultVisibility; ftLayer.OutFields = new ESRI.ArcGIS.Client.Tasks.OutFields() { "*" }; ftLayer.Initialized += new EventHandler<EventArgs>(ftLayer_Initialized); ftLayer.InitializationFailed += new EventHandler<EventArgs>(ftLayer_InitializationFailed); ftLayer.UpdateCompleted += new EventHandler(ftLayer_UpdateCompleted); ftLayer.MouseRightButtonUp += new GraphicsLayer.MouseButtonEventHandler(ftLayer_MouseRightButtonUp); ftLayer.MouseLeftButtonDown += new GraphicsLayer.MouseButtonEventHandler(ftLayer_MouseLeftButtonDown); ftLayer.MouseLeftButtonUp += new GraphicsLayer.MouseButtonEventHandler(ftLayer_MouseLeftButtonUp); _map.Layers.Add(childLayer); } } } } void ftLayer_UpdateCompleted(object sender, EventArgs e) { GraphicsLayer graphicLayer = layer as GraphicsLayer; foreach (var graphic in graphicLayer.Graphics) { //graphic.Symbol returns null in 10.2 (in 10.1 returned the Symbol value)????????? if (graphic.Symbol is PictureMarkerSymbol) { if (dicLayerGraphics.ContainsKey(layerId.ToString()) == false) { dicLayerGraphics[layerId.ToString()] = new List<Graphic>(); dicLayers[layerId.ToString()] = graphicLayer; } dicLayerGraphics[layerId.ToString()].Add(graphic); } } }
... View more
12-29-2013
04:46 AM
|
0
|
3
|
3016
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|