<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Thanks Ben for the hints with the boundary files. It looks like they are published weekly on the site you linked to. I modify my build script to download them when they change:</div><div class=""><div class=""><br class=""></div><div class="">wget -N --user-agent="<a href="http://www.theeggeadventure.com" class="">www.theeggeadventure.com</a>" <a href="http://osm2.pleiades.uni-wuppertal.de/sea/latest/sea.zip" class="">http://osm2.pleiades.uni-wuppertal.de/sea/latest/sea.zip</a></div><div class="">wget -N --user-agent="<a href="http://www.theeggeadventure.com" class="">www.theeggeadventure.com</a>" <a href="http://osm2.pleiades.uni-wuppertal.de/bounds/latest/bounds.zip" class="">http://osm2.pleiades.uni-wuppertal.de/bounds/latest/bounds.zip</a></div></div><div class=""><br class=""></div><div class="">The NYC addresses are working well. I have a minor correction as follows:</div><div class=""><br class=""></div><div class=""><div class="">Index: resources/styles/default/inc/address</div><div class="">===================================================================</div><div class="">--- resources/styles/default/inc/address<span class="Apple-tab-span" style="white-space:pre">        </span>(revision 3342)</div><div class="">+++ resources/styles/default/inc/address<span class="Apple-tab-span" style="white-space:pre">        </span>(working copy)</div><div class="">@@ -66,8 +66,11 @@</div><div class="">&nbsp;# New York City has different admin levels than the rest of the US.</div><div class="">&nbsp;# <a href="https://wiki.openstreetmap.org/wiki/United_States_admin_level" class="">https://wiki.openstreetmap.org/wiki/United_States_admin_level</a></div><div class="">&nbsp;mkgmap:country=USA &amp; mkgmap:city!=* &amp; mkgmap:admin_level5='New York City' &amp; mkgmap:admin_level6='New York County' { set mkgmap:city='New York' }</div><div class="">-mkgmap:country=USA &amp; mkgmap:city!=* &amp; mkgmap:admin_level5='New York City' &amp; mkgmap:admin_level6='Bronx County' { set mkgmap:city='The Bronx' }</div><div class="">+mkgmap:country=USA &amp; mkgmap:city!=* &amp; mkgmap:admin_level5='New York City' &amp; mkgmap:admin_level6='Bronx County' { set mkgmap:city='Bronx' }</div><div class="">&nbsp;mkgmap:country=USA &amp; mkgmap:city!=* &amp; mkgmap:admin_level5='New York City' &amp; mkgmap:admin_level6='Kings County' { set mkgmap:city='Brooklyn' }</div><div class="">+# Queens uses neighborhoods for city in postal addresses</div><div class="">+# <a href="http://en.wikipedia.org/wiki/List_of_Queens_neighborhoods" class="">http://en.wikipedia.org/wiki/List_of_Queens_neighborhoods</a></div><div class="">+mkgmap:country=USA &amp; mkgmap:city!=* &amp; mkgmap:admin_level5='New York City' &amp; mkgmap:admin_level6='Queens County' &amp; mkgmap:admin_level8=* { set mkgmap:city='${mkgmap:admin_level8}' }</div><div class="">&nbsp;mkgmap:country=USA &amp; mkgmap:city!=* &amp; mkgmap:admin_level5='New York City' &amp; mkgmap:admin_level6='Queens County' { set mkgmap:city='Queens' }</div><div class="">&nbsp;mkgmap:country=USA &amp; mkgmap:city!=* &amp; mkgmap:admin_level5='New York City' &amp; mkgmap:admin_level6='Richmond County' { set mkgmap:city='Staten Island' }</div><div class="">&nbsp;mkgmap:country=USA &amp; mkgmap:city!=* &amp; mkgmap:admin_level8=* { set mkgmap:city='${mkgmap:admin_level8|subst:City of }’ }</div></div><div class=""><br class=""></div><div class="">One always says ‘The Bronx’, but in addresses is it’s simply Bronx. For Queens, the neighborhood is used in mailing addresses, though sometimes people will use ‘Queens’ instead. If you look up "40-01 43 AVENUE” <a href="http://www.usps.com" class="">www.usps.com</a>, it says the standardized address is:</div><div class="">4001 43RD AVE<br class="">SUNNYSIDE&nbsp;NY&nbsp;11104-3205</div><div class=""><br class=""></div><div class="">But, the&nbsp;<a href="http://schools.nyc.gov/SchoolPortals/30/Q150/default.htm" class="">school board</a>&nbsp;lists it’s address as:</div><div class="">40-01 43 AVENUE<br class="">QUEENS,&nbsp;NY11104</div><div class=""><br class=""></div><div class="">While the&nbsp;<a href="https://sites.google.com/site/ps150queens/" class="">school itself</a>&nbsp;says it’s address is:</div><div class="">40-01 43 Avenue &nbsp;Sunnyside, NY 11104</div><div class=""><br class=""></div><div class="">If I’m given an address, most likely it will have the neighborhood in it, and not ‘Queens’.&nbsp;</div><div class=""><br class=""></div><div class="">Here’s an alternative patch to pick up place_name:</div><div class=""><div class="">Index: src/uk/me/parabola/mkgmap/build/LocatorUtil.java</div><div class="">===================================================================</div><div class="">--- src/uk/me/parabola/mkgmap/build/LocatorUtil.java<span class="Apple-tab-span" style="white-space:pre">        </span>(revision 3342)</div><div class="">+++ src/uk/me/parabola/mkgmap/build/LocatorUtil.java<span class="Apple-tab-span" style="white-space:pre">        </span>(working copy)</div><div class="">@@ -28,7 +28,7 @@</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                        </span>.compile("[,<a href="smb://s" class="">\\s</a>]+");</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span></div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>public static List&lt;String&gt; getNameTags(Properties props) {</div><div class="">-<span class="Apple-tab-span" style="white-space:pre">                </span>String nameTagProp = props.getProperty("name-tag-list", "name");</div><div class="">+<span class="Apple-tab-span" style="white-space:pre">                </span>String nameTagProp = props.getProperty("name-tag-list", "name,place_name");</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>return Arrays.asList(COMMA_OR_SPACE_PATTERN.split(nameTagProp));</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div class="">&nbsp;</div></div><div class="">Can we reduce the logging from the RuleFileReader by default? It produces a huge amount of output which probably isn’t useful unless you are debugging the rule reader.</div><div class=""><div class="">Index: src/uk/me/parabola/mkgmap/osmstyle/RuleFileReader.java</div><div class="">===================================================================</div><div class="">--- src/uk/me/parabola/mkgmap/osmstyle/RuleFileReader.java<span class="Apple-tab-span" style="white-space:pre">        </span>(revision 3342)</div><div class="">+++ src/uk/me/parabola/mkgmap/osmstyle/RuleFileReader.java<span class="Apple-tab-span" style="white-space:pre">        </span>(working copy)</div><div class="">@@ -243,7 +243,7 @@</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span> * from the expression.</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span> */</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>private void saveRule(TokenScanner scanner, Op op, ActionList actions, GType gt) {</div><div class="">-<span class="Apple-tab-span" style="white-space:pre">                </span>log.info("EXP", op, ", type=", gt);</div><div class="">+<span class="Apple-tab-span" style="white-space:pre">                </span>log.debug("EXP", op, ", type=", gt);</div><div class="">&nbsp;</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>// check if the type definition is allowed</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>if (inFinalizeSection &amp;&amp; gt != null)</div></div><div class=""><br class=""></div><div class="">Here’s a bit friendlier documentation:</div><div class=""><div class="">Index: src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java</div><div class="">===================================================================</div><div class="">--- src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java<span class="Apple-tab-span" style="white-space:pre">        </span>(revision 3342)</div><div class="">+++ src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java<span class="Apple-tab-span" style="white-space:pre">        </span>(working copy)</div><div class="">@@ -926,7 +926,10 @@</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                        </span>}</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                        </span>else {</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                                </span>mp = new MapPoint();</div><div class="">-<span class="Apple-tab-span" style="white-space:pre">                                </span>log.warn("Motorway exit", node.getName(), "(" + node.getLocation().toOSMURL() + ") has no motorway! (either make the exit share a node with the motorway or specify the motorway ref with a", Exit.TAG_ROAD_REF, "tag)");</div><div class="">+<span class="Apple-tab-span" style="white-space:pre">                                </span>// This may be caused by a motorway node connecting to two motorway links and no motorway</div><div class="">+<span class="Apple-tab-span" style="white-space:pre">                                </span>log.warn("Motorway exit", node.getName(), "(" , node.toBrowseURL(),&nbsp;</div><div class="">+<span class="Apple-tab-span" style="white-space:pre">                                                </span>") has no motorway! (either make the exit share a node with the motorway or specify the motorway ref with a",&nbsp;</div><div class="">+<span class="Apple-tab-span" style="white-space:pre">                                                </span>Exit.TAG_ROAD_REF, "tag)");</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                        </span>}</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>else {</div></div><div class=""><br class=""></div><div class="">Note - it an enhancement would be to see if the motorway_link is connected to another motorway_link, and attempt to follow the links back the motorway.&nbsp;</div><div class=""><br class=""></div><div class="">Standardize the URL:</div><div class=""><div class="">Index: src/uk/me/parabola/mkgmap/reader/osm/Element.java</div><div class="">===================================================================</div><div class="">--- src/uk/me/parabola/mkgmap/reader/osm/Element.java<span class="Apple-tab-span" style="white-space:pre">        </span>(revision 3342)</div><div class="">+++ src/uk/me/parabola/mkgmap/reader/osm/Element.java<span class="Apple-tab-span" style="white-space:pre">        </span>(working copy)</div><div class="">@@ -251,7 +251,7 @@</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div class="">&nbsp;</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>public String toBrowseURL() {</div><div class="">-<span class="Apple-tab-span" style="white-space:pre">                </span>return "<a href="http://www.openstreetmap.org/browse/" class="">http://www.openstreetmap.org/browse/</a>" + kind() + "/" + id;</div><div class="">+<span class="Apple-tab-span" style="white-space:pre">                </span>return "<a href="http://www.openstreetmap.org/" class="">http://www.openstreetmap.org/</a>" + kind() + "/" + id;</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div class="">&nbsp;</div><div class="">&nbsp;<span class="Apple-tab-span" style="white-space:pre">        </span>public Element copy() {</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Brian</div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>