/// <summary> /// Geocode order, using local geocoder. /// </summary> /// <param name="order">Order to geocode.</param> /// <param name="useLocalAsPrimary">If true and record exists in storage, than dont use server geocoder.</param> /// <param name="includeDisabledLocators">Is need to add candidates from disabled locators.</param> /// <returns>Candidates list.</returns> private static List <AddressCandidate> _DoLocalOrderGeocode(Order order, bool useLocalAsPrimary, bool includeDisabledLocators) { LocalGeocoder localGeocoder = new LocalGeocoder(App.Current.Geocoder, App.Current.NameAddressStorage); NameAddress nameAddress = new NameAddress(); nameAddress.Name = order.Name; nameAddress.Address = (Address)order.Address.Clone(); List <AddressCandidate> candidates = new List <AddressCandidate>(); AddressCandidate candidateFromLocalGeocoder = localGeocoder.Geocode(nameAddress); if (useLocalAsPrimary && candidateFromLocalGeocoder != null) { candidates.Add(candidateFromLocalGeocoder); } else { AddressCandidate[] candidatesArray = localGeocoder.GeocodeCandidates(nameAddress, includeDisabledLocators); candidates.AddRange(candidatesArray); } return(candidates); }
/// <summary> /// Geocode order, using local geocoder. /// </summary> /// <param name="order">Order to geocode.</param> /// <param name="useLocalAsPrimary">If true and record exists in storage, than dont use server geocoder.</param> /// <param name="includeDisabledLocators">Is need to add candidates from disabled locators.</param> /// <returns>Candidates list.</returns> private static List<AddressCandidate> _DoLocalOrderGeocode(Order order, bool useLocalAsPrimary, bool includeDisabledLocators) { LocalGeocoder localGeocoder = new LocalGeocoder(App.Current.Geocoder, App.Current.NameAddressStorage); NameAddress nameAddress = new NameAddress(); nameAddress.Name = order.Name; nameAddress.Address = (Address)order.Address.Clone(); List<AddressCandidate> candidates = new List<AddressCandidate>(); AddressCandidate candidateFromLocalGeocoder = localGeocoder.Geocode(nameAddress); if (useLocalAsPrimary && candidateFromLocalGeocoder != null) { candidates.Add(candidateFromLocalGeocoder); } else { AddressCandidate[] candidatesArray = localGeocoder.GeocodeCandidates(nameAddress, includeDisabledLocators); candidates.AddRange(candidatesArray); } return candidates; }