/// <summary> /// The visit. /// </summary> /// <param name="node"> /// The node. /// </param> /// <param name="state"> /// The state. /// </param> /// <returns> /// The <see cref="QueryNode"/>. /// </returns> protected override QueryNode Visit(QueryNode node, CloudQueryOptimizerState state) { if (node.NodeType == QueryNodeType.Custom) { if (node is WithinRadiusNode) { return(this.VisitWithinRadius((WithinRadiusNode)node, state)); } } return(base.Visit(node, state)); }
/// <summary> /// The visit within radius. /// </summary> /// <param name="radiusNode"> /// The radius node. /// </param> /// <param name="state"> /// The state. /// </param> /// <returns> /// The <see cref="QueryNode"/>. /// </returns> private QueryNode VisitWithinRadius(WithinRadiusNode radiusNode, CloudQueryOptimizerState state) { return(new WithinRadiusNode(radiusNode.Latitude, radiusNode.Longitude, radiusNode.FieldName, radiusNode.Radius, radiusNode.DistanceSort, radiusNode.MaxResults)); }