Ejemplo n.º 1
0
    private void CenterMap()
    {
        mapCenter.Latitude  = Latitude;
        mapCenter.Longitude = Longitude;
        mapWorldCenter.x    = GoogleMapUtil.LonToX(mapCenter.Longitude);
        mapWorldCenter.y    = GoogleMapUtil.LatToY(mapCenter.Latitude);

        mapScale.x = GoogleMapUtil.CalculateScaleX(Latitude, MapTileSizePixels, MapTileScale, MapTileZoomLevel);
        mapScale.y = GoogleMapUtil.CalculateScaleY(Longitude, MapTileSizePixels, MapTileScale, MapTileZoomLevel);

        var lon1 = GoogleMapUtil.AdjustLonByPixels(Longitude, -MapTileSizePixels / 2, MapTileZoomLevel);
        var lat1 = GoogleMapUtil.AdjustLatByPixels(Latitude, MapTileSizePixels / 2, MapTileZoomLevel);

        var lon2 = GoogleMapUtil.AdjustLonByPixels(Longitude, MapTileSizePixels / 2, MapTileZoomLevel);
        var lat2 = GoogleMapUtil.AdjustLatByPixels(Latitude, -MapTileSizePixels / 2, MapTileZoomLevel);

        mapEnvelope = new MapEnvelope(lon1, lat1, lon2, lat2);

        lon1 = GoogleMapUtil.AdjustLonByPixels(Longitude, -MapTileSizePixels * 3 / 2, MapTileZoomLevel);
        lat1 = GoogleMapUtil.AdjustLatByPixels(Latitude, MapTileSizePixels * 3 / 2, MapTileZoomLevel);

        lon2 = GoogleMapUtil.AdjustLonByPixels(Longitude, MapTileSizePixels * 3 / 2, MapTileZoomLevel);
        lat2 = GoogleMapUtil.AdjustLatByPixels(Latitude, -MapTileSizePixels * 3 / 2, MapTileZoomLevel);

        mapBounds = new MapEnvelope(lon1, lat1, lon2, lat2);
    }
        public override VectorData LoadElements(CullState cullState)
        {
            VectorElementVector elements = new VectorElementVector();

            MapEnvelope mapViewBounds = cullState.GetProjectionEnvelope(this.Projection);
            MapPos      min           = mapViewBounds.Bounds.Min;
            MapPos      max           = mapViewBounds.Bounds.Max;

            // Run query here
            LoadData(elements, min, max, cullState.ViewState.Zoom);

            return(new VectorData(elements));
        }