public async Task <ActionResult> QueryRectangle(RectangleQuery query)
        {
            if (!ModelState.IsValid)
            {
                return(Json("{\"result\":\"Bad Request\"}", JsonRequestBehavior.AllowGet));
            }

            var min = new GeoPoint(query.MinLat, query.MinLng);
            var max = new GeoPoint(query.MaxLat, query.MaxLng);


            var attributesToGet = new List <string>
            {
                _config.RangeKeyAttributeName,
                _config.GeoJsonAttributeName,
                "schoolName"
            };

            var radReq = new QueryRectangleRequest(min, max);

            radReq.QueryRequest.AttributesToGet = attributesToGet;

            var result = await _geoDataManager.QueryRectangleAsync(radReq);

            var dtos = GetResultsFromQuery(result);


            return(Json(dtos, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        public async Task <QueryRectangleResult> QueryRectangleAsync(QueryRectangleRequest queryRectangleRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (queryRectangleRequest == null)
            {
                throw new ArgumentNullException("queryRectangleRequest");
            }
            var latLngRect = S2Util.GetBoundingLatLngRect(queryRectangleRequest);

            var cellUnion = S2Manager.FindCellIds(latLngRect);
            var ranges    = MergeCells(cellUnion);

            var result = await DispatchQueries(ranges, queryRectangleRequest, cancellationToken).ConfigureAwait(false);

            return(new QueryRectangleResult(result));
        }
Пример #3
0
        public async Task <ActionResult> QueryRectangle(MapBounds bounds)
        {
            //await Utilities.Instance.StartLoadData(this.geoService);

            var min = new GeoPoint(bounds.MinLat, bounds.MinLng);
            var max = new GeoPoint(bounds.MaxLat, bounds.MaxLng);

            var attributesToGet = new List <string>
            {
                "geoJson",
                "rangeKey"
            };

            var radReq = new QueryRectangleRequest(min, max);

            radReq.QueryRequest.AttributesToGet = attributesToGet;

            var result = await geoService.QueryRectangleAsync(radReq);

            var dtos = GetResultsFromQuery(result);

            return(Ok(dtos));
        }