コード例 #1
0
 private IObservable <int> Get(MapQuery query, int tag, OnElementLoaded elementLoadedHandler, OnError errorHandler)
 {
     _trace.Debug(TraceCategory, "Search elements");
     WithCancelToken(new CancellationToken(), (cancelTokenHandle) => getDataByText(
                         tag, query.NotTerms, query.AndTerms, query.OrTerms,
                         query.BoundingBox.MinPoint.Latitude, query.BoundingBox.MinPoint.Longitude,
                         query.BoundingBox.MaxPoint.Latitude, query.BoundingBox.MaxPoint.Longitude,
                         query.LodRange.Minimum, query.LodRange.Maximum, elementLoadedHandler, errorHandler,
                         cancelTokenHandle.AddrOfPinnedObject())
                     );
     return(Observable.Return(100));
 }
コード例 #2
0
 public static void GetnMapARB(MapTarget target, MapQuery query, [Out] int[] v)
 {
     unsafe
     {
         fixed(int *p_v = v)
         {
             Debug.Assert(Delegates.pglGetnMapivARB != null, "pglGetnMapivARB not implemented");
             Delegates.pglGetnMapivARB((int)target, (int)query, v.Length, p_v);
             LogCommand("glGetnMapivARB", null, target, query, v.Length, v);
         }
     }
     DebugCheckErrors(null);
 }
コード例 #3
0
 public static void GetnMapARB(MapTarget target, MapQuery query, int bufSize, [Out] double[] v)
 {
     unsafe
     {
         fixed(double *p_v = v)
         {
             Debug.Assert(Delegates.pglGetnMapdvARB != null, "pglGetnMapdvARB not implemented");
             Delegates.pglGetnMapdvARB((int)target, (int)query, bufSize, p_v);
             LogCommand("glGetnMapdvARB", null, target, query, bufSize, v);
         }
     }
     DebugCheckErrors(null);
 }
コード例 #4
0
 public static void GetnMapARB(MapTarget target, MapQuery query, Int32 bufSize, [Out] float[] v)
 {
     unsafe
     {
         fixed(float *p_v = v)
         {
             Debug.Assert(Delegates.pglGetnMapfvARB != null, "pglGetnMapfvARB not implemented");
             Delegates.pglGetnMapfvARB((Int32)target, (Int32)query, bufSize, p_v);
             LogCommand("glGetnMapfvARB", null, target, query, bufSize, v);
         }
     }
     DebugCheckErrors(null);
 }
コード例 #5
0
 public BlendNeighboursSelector2(ITileRegistryEx <CardinalIndex, TRenderTile> registry,
                                 IMapNavigator <GridDirection> gridNavigator,
                                 MapQuery <string> mapQuery,
                                 MapQuery <bool> isBlending,
                                 MapQuery <TContext> contextProvider = null)
 {
     this.registry        = registry;
     this.gridNavigator   = gridNavigator;
     this.mapQuery        = mapQuery;
     this.isBlending      = isBlending;
     this.contextProvider = contextProvider ?? DefaultContextProvider;
     this.directions      = new[] { CardinalIndex.North, CardinalIndex.East, CardinalIndex.South, CardinalIndex.West };
 }
コード例 #6
0
        /// <inheritdoc />
        public IObservable <int> Get(MapQuery query, IList <IObserver <Element> > observers)
        {
            lock (this)
            {
                _queryObservers = observers;
            }

            var tag = query.GetHashCode();

            Queries.TryAdd(tag, query);
            var observable = Get(query, 0, OnElementFoundHandler, OnErrorHandler);

            Queries.TryRemove(tag);
            return(observable);
        }
コード例 #7
0
        public static Element GetResultSync(this IMapDataStore store, MapQuery query, int waitTimeInSeconds = 10)
        {
            Element element          = null;
            var     manualResetEvent = new ManualResetEvent(false);

            store
            .ObserveOn <Element>(Scheduler.CurrentThread)
            .SubscribeOn(Scheduler.CurrentThread)
            .Subscribe(r =>
            {
                element = r;
                manualResetEvent.Set();
            });
            store.OnNext(query);
            manualResetEvent.WaitOne(TimeSpan.FromSeconds(waitTimeInSeconds));
            return(element);
        }
コード例 #8
0
        public void CanSearchForElementsWithText()
        {
            // ARRANGE
            int lod = 14;

            SetupMapData(TestHelper.MoscowJsonData, lod);
            MapQuery query = new MapQuery(
                String.Empty, "Grand Kremlin Square", String.Empty,
                new BoundingBox(new GeoCoordinate(55.7466, 37.6077), new GeoCoordinate(55.7571, 37.6292)),
                new Range <int>(lod, lod));

            // ACT
            var element = _mapDataStore.GetResultSync(query);

            // ASSERT
            Assert.AreEqual(1360699, element.Id);
        }
コード例 #9
0
        /// <inheritdoc />
        public UtyRx.IObservable <int> Get(MapQuery query, IList <UtyRx.IObserver <Element> > observers)
        {
            var queryHandler = new QueryHandler(observers);

            return(Get(query, 0, queryHandler.OnElementLoadedHandler, OnErrorHandler));
        }
コード例 #10
0
 public DirectMappingTileMatcher(MapQuery <TSourceTile> readMap, Mapper <TSourceTile, TRenderTile, TContext> mapper)
 {
     this.readMap = readMap;
     this.mapper  = mapper;
 }
コード例 #11
0
        public static void Setup(TestContext context)
        {
            Graph map = new GraphLoader().Load("AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7");

            m_mapQuery = new MapQuery(map);
        }
コード例 #12
0
ファイル: MapDataStore.cs プロジェクト: vamsirajendra/utymap
 /// <summary> Triggers search of elements matching query query. </summary>
 public void OnNext(MapQuery value)
 {
     _mapDataLibrary.Get(value, _elementObservers);
 }
コード例 #13
0
 public abstract void GetnMap([Flow(FlowDirection.In)] MapTarget target, [Flow(FlowDirection.In)] MapQuery query, [Flow(FlowDirection.In)] uint bufSize, [Count(Parameter = "bufSize"), Flow(FlowDirection.Out)] Span <int> v);
コード例 #14
0
 public abstract unsafe void GetnMap([Flow(FlowDirection.In)] MapTarget target, [Flow(FlowDirection.In)] MapQuery query, [Flow(FlowDirection.In)] uint bufSize, [Count(Parameter = "bufSize"), Flow(FlowDirection.Out)] float *v);