Example #1
0
    public void GetElement(int elementId, OnElementLoaded onElementLoaded)
    {
        _onElementLoaded = onElementLoaded;

        var element = DomainLogic.DB.SqlConn().Table <Element>().Where(p => p.Id == elementId).FirstOrDefault();

        SetupElement(ref element);

        _onElementLoaded(element);
    }
 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));
 }
Example #3
0
        /// <summary> Loads tile. </summary>
        /// <param name="tile"> Tile to load. </param>
        /// <param name="onMeshBuilt"> Mesh callback. </param>
        /// <param name="onElementLoaded"> Element callback. </param>
        /// <param name="onError"> Error callback. </param>
        /// <param name="pathResolver"> Path resolver. </param>
        public static void LoadTile(Tile tile, OnMeshBuilt onMeshBuilt,
                                    OnElementLoaded onElementLoaded, OnError onError, IPathResolver pathResolver)
        {
            var stylePath         = pathResolver.Resolve(tile.Stylesheet.Path);
            var quadKey           = tile.QuadKey;
            var cancelTokenHandle = GCHandle.Alloc(tile.CancelationToken, GCHandleType.Pinned);

            loadQuadKey(tile.GetHashCode(), stylePath,
                        quadKey.TileX, quadKey.TileY, quadKey.LevelOfDetail, (int)tile.ElevationType,
                        onMeshBuilt, onElementLoaded, onError,
                        cancelTokenHandle.AddrOfPinnedObject());
            cancelTokenHandle.Free();
        }
Example #4
0
 /// <summary>
 /// 获取并创建WPF的UI元素
 /// </summary>
 private void SetUIElement()
 {
     UIElementName = GetType().Name;
     UIElementName = UIElementName.Replace("Vm_", ""); //去除命名规范的前缀
     UIElementName = UIElementName.Replace("`1", "");  //去除泛型的特定标识
     if (UIElementName.StartsWith("Window"))
     {
         UIElementName = UIElementName.TrimStart("Window".ToCharArray());
         UIElement     = Get <Window>();
         (UIElement as Window).Closing += delegate(object sender, CancelEventArgs e)
         {
             OnElementClosing?.Invoke(sender, e);
         };
     }
     else if (UIElementName.StartsWith("Page"))
     {
         UIElementName = UIElementName.TrimStart("Page".ToCharArray());
         UIElement     = Get <Page>();
     }
     else if (UIElementName.StartsWith("UC"))
     {
         UIElementName = UIElementName.TrimStart("UC".ToCharArray());
         UIElement     = Get <UserControl>();
     }
     else
     {
         throw new FrameworkException(103, string.Format("元素[{0}]不符合命名规范!", UIElementName));
     }
     UIElement.Loaded += delegate(object sender, RoutedEventArgs e)
     {
         OnElementLoaded?.Invoke(sender, e);
     };
     UIElement.Unloaded += delegate(object sender, RoutedEventArgs e)
     {
         OnElementUnLoaded?.Invoke(sender, e);
     };
 }
Example #5
0
 private static extern void loadQuadKey(string stylePath, int tileX, int tileY, int levelOfDetails,
                                        OnMeshBuilt meshBuiltHandler, OnElementLoaded elementLoadedHandler, OnError errorHandler);
Example #6
0
 /// <summary> Loads quadkey. </summary>
 /// <param name="stylePath"> Stylesheet path. </param>
 /// <param name="quadKey"> QuadKey</param>
 /// <param name="onMeshBuilt"></param>
 /// <param name="onElementLoaded"></param>
 /// <param name="onError"></param>
 public static void LoadQuadKey(string stylePath, QuadKey quadKey,
                                OnMeshBuilt onMeshBuilt, OnElementLoaded onElementLoaded, OnError onError)
 {
     loadQuadKey(stylePath, quadKey.TileX, quadKey.TileY, quadKey.LevelOfDetail,
                 onMeshBuilt, onElementLoaded, onError);
 }
Example #7
0
 private static extern void loadQuadKey(string stylePath, int tileX, int tileY, int levelOfDetails,
     OnMeshBuilt meshBuiltHandler, OnElementLoaded elementLoadedHandler, OnError errorHandler);
Example #8
0
 /// <summary> Loads quadkey. </summary>
 /// <param name="stylePath"> Stylesheet path. </param>
 /// <param name="quadKey"> QuadKey</param>
 /// <param name="onMeshBuilt"></param>
 /// <param name="onElementLoaded"></param>
 /// <param name="onError"></param>
 public static void LoadQuadKey(string stylePath, QuadKey quadKey,
     OnMeshBuilt onMeshBuilt, OnElementLoaded onElementLoaded, OnError onError)
 {
     loadQuadKey(stylePath, quadKey.TileX, quadKey.TileY, quadKey.LevelOfDetail,
         onMeshBuilt, onElementLoaded, onError);
 }
Example #9
0
 private static extern void loadQuadKey(int tag, string stylePath, int tileX, int tileY, int levelOfDetails, int eleDataType,
                                        OnMeshBuilt meshBuiltHandler, OnElementLoaded elementLoadedHandler, OnError errorHandler, IntPtr cancelToken);
Example #10
0
        private IObservable <int> Get(Tile tile, int tag, OnMeshBuilt meshBuiltHandler, OnElementLoaded elementLoadedHandler, OnError errorHandler)
        {
            _trace.Debug(TraceCategory, "Get tile {0}", tile.ToString());
            var stylePath         = RegisterStylesheet(tile.Stylesheet);
            var quadKey           = tile.QuadKey;
            var cancelTokenHandle = GCHandle.Alloc(tile.CancelationToken, GCHandleType.Pinned);

            loadQuadKey(tag, stylePath,
                        quadKey.TileX, quadKey.TileY, quadKey.LevelOfDetail, (int)tile.ElevationType,
                        meshBuiltHandler, elementLoadedHandler, errorHandler,
                        cancelTokenHandle.AddrOfPinnedObject());
            cancelTokenHandle.Free();
            return(Observable.Return(100));
        }
 private static extern void getDataByText(int tag, string notTerms, string andTerms, string orTerms,
                                          double minLatitude, double minLogitude, double maxLatitude, double maxLogitude,
                                          int startLod, int endLod,
                                          OnElementLoaded elementLoadedHandler, OnError errorHandler, IntPtr cancelToken);