OpenStreetMap logo OpenStreetMap

Changeset When Comment
126034827 7 months ago

@Mateusz Konieczky We're ahead of you on that. In New York, at least, we tag the form of government - the "local law" that @RDreher is referring to - on the boundary relation as 'border_type'. (Unfortunately, 'admin_level' is problematic for this: New York's municipal structure is kind of chaotic and not always hierarchical. We don't have overlaps at the same admin_level¸ but it's not guaranteed that an admin_level=8 is contained in exactly one admin_level=7. Cities cross county lines, villages cross township lines, and so on. The place=* nodes that RDreher is complaining about are all members of boundary relations.

126034657 7 months ago

Please don't jump to conclusions. I have no objection whatsoever to overriding the 'place=*' assignment for Woodridge. (As far as I can remember, I've never been there.)

When I started the exercise, virtually all the 'place=*' nodes for New York municipalities came from an earlier import. They were full of inappropriate assignments, some quite egregious, because they were all based on the form of government. What you refer to as "local law" and wish to canonize is, in fact, almost a historical accident. There are small cities, such as Brentwood and Levittown (each of which has over 60,000 inhabitants) that were classed as 'place=hamlet' because they have no local government other than their containing townships. There were nearly uninhabited places (population of no more than a few hundred), such as Red House, Hardenburgh, and Arietta, that were classed as 'place=town' simply because they're townships. There was also a 'place=town' for the defunct settlement of Tusten (burnt to the ground in the French and Indian War, and never rebuilt), because that's the name of the township whose seat of government is Narrowsburg. There was a 'place=city' on the small village of Sherrill, because it has a city charter. The Village of Hempstead, also a small city, was 'place=village' because that is its form of government.

There were dozens, if not hundreds, of such inversions, because in New York, the form of government is at most only loosely correlated with the size or importance of a place, which is what 'place=*' is supposed to represent. 'Town of', in particular, predicts nothing. The entire state is carved up into townships, whose populations range from a few dozen to a few million. But 'village', 'hamlet' and even 'city' are only a little more predictive. A legal 'hamlet' can be a city of 60,000 and a legal 'city' can be a village of 3000.

Of course, the political organization of the state is also important. It is retained on all the boundary relations. If you look at the boundary of Woodridge, you will be able to discern that it is incorporated as a village.

Population was simply the most obvious surrogate to use that was available for all the places. The change was discussed fairly extensively on the forums at the time, and the conclusion was that it was most likely to be an overall improvement, even if it might damage some boundary cases. Places whose 'place=*' was changed from the original import were left alone.

In reviewing the changes, I did make some overrides for places that I knew. Saranac Lake, for instance, got upgraded to a 'town' despite its tiny size, because it has the only commercial airport, the only hospital, and the only large department store for many miles around; it is the market center serving a large hinterland. I also upgraded a few communities like Watertown and Binghamton to cities even though they didn't quite meet the (somewhat arbitrary) population cutoff.

The intent was to clean up an unholy mess coming from an import and at least have a place hierarchy that roughly reflected reality on the ground, not to run roughshod over the locals! (A related project reimported political boundaries; what existed before the reimport was truly wretched.)

In reviewing the 'place=*' nodes, I also added the Yiddish names for several places where it is the majority language, or at least a significant minority, for example Kiryas Joel, New Square, and Kaser,
added Seneca names for places in western New York on and near the reservations (using a list provided by the Seneca Nation).

In short, condemning the entire effort as 'condescending and imperialistic' without considering whether it was an improvement of what has come before it is expecting unachievable perfection. Truly, I'm doing what I can, and doing my best to defer to the locals!

137290678 about 2 years ago

I deleted The Powerlinez from the Harriman Park boundary because the area directly under the power llines and the access road down to Torne Brook road are actually outside Harriman State Park. The State Park boundary is correct. (The power line right-of-way belongs to the power company and the access road belongs to the county. Not sure about who owns the Saltbox House area, but it's not the state.)

125384260 about 2 years ago

You seem to have captured nicely what place=* is trying to achieve, and you're more familiar with the ground truth than I am. Make it so! (If you upgrade Cornwall to place=town, then downgrade Firthcliffe to place=locality.)

The admin boundary will render nicely without a label node, in the default rendering. The idea behind having a label node on each admin boundary is that a non-default rendering that focuses on political boundaries should be able to place labels by finding nodes in the boundary relation with the 'label' role. (The default OSM rendering doesn't do this, but OSM is all about the data, not the default rendering.)

I've _been_ to the area to hike in Storm King, Black Rock Forest and Schunnemunk, but I think I've stopped in the town only once, about 25 years ago, when my daughter wound up in the ER there after a traffic accident in Woodbury/Central Valley. So my input to this project consisted mostly in cleaning up an unholy mess from the TIGER imports. Now that you understand the schema, feel free to repair the details.

125384260 about 2 years ago

Are you talking about place nodes, or admin boundaries? The terms are used differently on the two.

On place nodes, the tag refers always to the importance of the place and never to the form of government. city > town > village > hamlet. This mostly got assigned by population, but there were a few overrides. The one that sticks in my mind is that Saranac Lake is tiny, but got `town` anyway because it has the only hospital and the only airport for many miles around.

Doing it this way rather than by form of government is essential to getting the labels right and having them appear at the right zoom levels. Despite being legally a 'hamlet', Brentwood is a small city of >60,000 inhabitants. By contrast, the City of Sherrill is a village of fewer than 3,000 souls

On boundary relations, the border_type indicates what sort of municipality is enclosed: city, borough, town, village, hamlet (ward, community district, ...). In some cases these are coterminous with Census-Determined Places, so you'll see 'hamlet;CDP' on a bunch of them.

New York doesn't have 'townships' - that's a term from other states that's often used in common speech in New York to describe the land belonging to a town.

What I suspect confused you is that the two places you mentioned (Newburgh, Cornwall) represent two fairly common corner cases. In the case of Newburgh, there are two distinct municipalities: the Town of Newburgh, and the City of Newburgh. Neither is subject to the other. The settlement commonly called Newburgh has a place=town node. (It was just short of the significance needed for place=city.) The Town of Newburgh doesn't include that city, it's basically what was left over after the city was chartered.
Because it messes up rendering if an admin boundary doesn't have a label, there's an arbitrary node created for it - and included as the 'label' member of the boundary relation. This node is tagged place=locality not:place=town because there's no settlement of the given name where the node is placed.

Similarly, the Town of Cornwall is a higher-level admin entity. The Village of Cornwall-on-Hudson is within its borders and subject to it (Village governments have limited powers, and many government functions remain with the town). Moreover, 'Cornwall' and 'Cornwall-on-Hudson' are distinct names. Once again, there's an arbitrary label created for the Town.

These arbitrary labels - there are a bunch of them - are all tagged not:place=town so that future mappers don't mistakenly conflate them with settlements that are distinct from them.

There are other corner cases that you'll likely stumble on: villages that are in more than one town (Sorry. It is what it is); consolidated town/village (where a village annexed an entire town but the village government was not disbanded); former villate that disincorporated and was demoted to a hamlet (e.g. Rosendale), chartered city entirely on the land of an Indian Reservation (Salamanca); a village located entirely outside the town of the same name and still housing the town's administrative offices (there are one or two of these, but I've mercifully forgotten where they are); and so on. They're all handled the same way: a `boundary=administrative` relation for every municipality (and some hamlets - others don't have defined borders), a `place` node for every named settlement (always tagged according to importance not government), and an artificial `place=locality not:place=town` node for those Towns that either don't have a settlement with the same name as the town, or have the named settlement outside the town's borders.

The other oddity you might see is that the town of Palm Tree, the villages of Kiryas Joel, New Square and Kaser, and a number of settlements on the reservations in the western part of the state are named in the local language (Yiddish for the first four; one or another of the Haundenosaunee languages for the ones on the reservations). This is intentional; English is not the majority languages in those places. (By the way, the unusual Unicode for the character in names like Onë꞉dagö꞉h that looks like a colon is also intentional. That character is a letter of the Seneca alphabet and not a punctuation mark.)

Yeah, it's complicated. New York's government structure is, uhm, not straightforward.