I have some questions about writing/modifying locator styles. The first thing I want to say is that I have read the document "Customising Locators in ArcGIS 10" closely, and then answers I seek are not in there. To my knowledge, that is the only official documentation on ArcGIS 10 locator .lot.xml files (excluding the documentation in the schema files). I've also scoured the web for answers to no avail.
So here are my questions.
TL;DR: What is the <std_elt> element for?
"The content in braces is a hint that a particular search context applies for the element. The engine manages sets of tests for elements within search contexts; these are discussed later in this document."
Later in the document:
"The source style used the "ZIPSearch" search context for Postal, but we will use "PostalSearch." There is also a search context called "CitySearch." These search contexts are defined by the engine and manage a set of tests for the element."
This doesn't really explain what search contexts are available, or how they work. I'm also unclear what the relationship is between the search_context attribute and the <result> element.
TL;DR: What is the search_context attribute for, and how does it relate to the <result> element?
However, I've seen several examples that use functionality not present in this list. For example, page 60 of the same document shows the code snippet: <alt>`[0-9]{4}`</alt>, which shouldn't work if the information on p.52 is correct.
TL;DR: Is there a more accurate description of supported regex functionality for locator styles?
TL;DR: What other work is carried out when geocoding that isn't specified in the <inputs> and <multiline_grammar> elements of the <ref_data_style>?
TL;DR: If I don't plan on standardising address data, do I need to create the <standardization> element in my mapping schema?
TL;DR: Can I perform a multiline query in Python?
Thanks in advance, please let me know if I need to clarify any of my questions.
-David
David,
<alt selector="supportsIntersections" fallback_score="10">
<field_ref ref="Street"/>
<elt ref="FullStreetName" search_context="leftStreet" weight="40" separator_list=".,;-"/>
<elt ref="intConnector"/>
<elt ref="FullStreetName" search_context="rightStreet" weight="40" separator_list=".,;-"/>
<elt ref="multilineZone" weight="30" separator_list=".,;-"/>
<result tag="StreetInt">
<method ref="intersection">
<parameter>
<search_value ref="leftStreet" original_values="true"/>
</parameter>
<parameter>
<search_value ref="rightStreet" original_values="true"/>
</parameter>
</method>
<format_ref ref="format_intersections"/>
</result>
</alt>
- here is the grammar for intersection addresses (“Main St & 1st Ave”). The geocoding process needs to collect two sets of candidates and then find if any of them intersect (have common nodes). The elements that will be included in “FullStreetName” and affect the search context (i.e. StName) for the “left” part of the address will be associated with “leftStreet” search context, and for the “right” part – with the “rightStreet” context. Then, after the parse is done, result of this parse will be calculated using “intersection” method, which in turn will receive the search_value (result of the search using named search_context) for “leftStreet” and “rightStreet”, respectively.
Sergey