VII.5 Blockfaces: Function 3C
In some applications, data are related to blockfaces, which are specific to a side of a street, rather than to street stretches or segments, which comprise both sides of the ‘on’ street. One way in which users commonly specify blockfaces is in terms of an ‘on’ street, two cross streets and a compass direction designating the side of the ‘on’ street, for example: “in Manhattan, the east side of Madison Avenue between East 50th and East 51st Streets”. Given such a blockface specification, Function 3C can be used to obtain information specific to that blockface. (For Manhattan only, the compass orientations of blockfaces are shifted 30 degrees counterclockwise, to conform to the widespread conventional treatment of the avenues and streets in midtown Manhattan as if they were oriented due north-south and due east-west, respectively. For more details on this 30-degree shift, see the description of Segment Orientation in Appendix 3.)
Function 3C accepts as input the long blockfaces formed by T-intersections. The sides of stretches opposite to such long blockfaces consist of more than one blockface and are not accepted as Function 3C input.
The input items to Function 3C are an ‘on’ street, two cross streets and a compass direction specifying the side of the street. The input cross streets, but not the ‘on’ street, may be pseudo-streets or intersection names. Note that, for Function 3C, the input compass direction has a different significance than it does for Function 2. In the case of Function 3C, the compass direction identifies which side of the street is to be processed. In the case of Function 2, it identifies, for a pair of input streets that intersect at two distinct locations, which of those two intersections is to be processed.
The same combinations of an ‘on’ street and two cross streets that Function 3 rejects as ambiguous input data are also rejected as ambiguous input data by Function 3C.
When Function 3C is called using two work areas, it returns in its WA2 those Function 3 WA2 items that are not associated with a specific side of the street, such as the lists of cross streets, the Segment Length, the ‘From’ node (COW only), ‘To’ node (COW only), etc. It also returns all of those Function 3 WA2 items that are specific to the side of the street specified by the input compass direction, such as the low and high house numbers, ZIP code and community district for that side of the street.
A successful two-work-area call to Function 3C signifies the following:
- The input ‘on’ street and two cross streets (or intersection names) specify a street stretch that is valid as Function 3 input (i.e., it is either a single street segment or a multi-segment stretch at least one side of which is a single entire blockface)
- The input compass direction is a valid specification (as defined below) of a side of that stretch
- The specified side of the stretch is a single entire blockface
As the second condition above implies, Function 3C treats some compass directions as invalid side-of-street specifications for some street stretches. The validity of a compass direction as a specification of a side of a street is determined by the orientation of the segment (or of the last segment of the stretch, if it consists of more than one segment) with respect to the points of the compass, as indicated by the value of the Segment Orientation. If the segment is oriented ‘nearly’ (i.e., within ten degrees of) due east-west, as indicated by a Segment Orientation value of ‘E’ or ‘W’, then its sides can only be validly described as the north and south sides, and Function 3C will reject east and west as side-of-street specifications. Similarly, if the segment is within ten degrees of due north-south, as indicated by a Segment Orientation value of ‘N’ or ‘S’ , then it is considered to have only east and west sides, and Function 3C will reject north and south as side-of-street specifications. (Note: recall that all Segment Orientation values in Manhattan are rotated 30 degrees counterclockwise. This has the effect, for example, of causing Geosupport to treat Third Avenue in Midtown Manhattan as a ‘nearly’ north-south street. Thus, Function 3C accepts as input either the east or west side of Third Avenue between, say, East 50 Street and East 51 Street, but it rejects the north and south sides.)
Of course, most segments are ‘diagonal’ (not oriented within ten degrees of due north-south or due east-west), in which case all four compass directions are accepted as valid side-of-street specifications. For example, if the segment is oriented northwest-southeast, one side of the segment is simultaneously the north side and the east side, and the other side is simultaneously the south side and the west side.
Consider the example illustrated in Figure VII-15. The east side of Fifth Avenue between East 40th and East 41st Streets is a valid blockface specification and is accepted by Function 3C. The same is true for the east side of Fifth Avenue between East 41st and East 42nd Streets. The west side of Fifth Avenue between East 40th and East 42nd Streets is likewise a valid blockface specification, in this case designating the long blockface of a T-intersection. The east side of Fifth Avenue between East 40th and East 42nd Streets is not a valid blockface specification, and is rejected by Function 3C (even though that combination of ‘on’ street and two cross streets is accepted by Function 3), since that side of Fifth Avenue between those cross streets consists of two blockfaces. See Chapter VII.4 for a description of the Auxiliary Segment Switch. That switch allows the user to request that Geosupport return all the segment IDs in a long face of a T-intersection, or any other multi-segment situation.
The Extended WA2 Mode Switch is available for Function 3C. The first 300 bytes of Function 3C with the Mode Switch set to “X” will be the same as regular Function 3C calls. The additional fields that are returned with Function 3 Extended are returned with Function 3C Extended as well.