User:Polarbear/chamber

From OpenStreetMap Wiki
Jump to navigation Jump to search


< cc.json jq '[.[]] | group_by(.city)[] | {(.[0].city): (. | length)}'

chamber.jq


{ "type": "FeatureCollection",
  "features": [
    .[] |
    select(.member_type | test("Friend of the Chamber|Email List Only|Staff Access Only") | not) |
    {
      "type": "Feature",
      "geometry": { "type": "Point", "coordinates": [.lng, .lat] },
      "properties": {
        address_1,
        "addr:housenumber": (.address_1 | capture("^\\s*(?<a>[0-9]+)") | .a),
        "addr:street": (
          if (.address_1 | test("(?<!,).*suite";"i")) #suite without comma
          then (.address_1|capture("^\\s*[0-9]+[\\s-]+(?<a>.+) (suite.*)";"i") | .a)
          elif (.address_1 | test(",";"i")) #suite or unit with comma
          then (.address_1|capture("^\\s*[0-9]+[\\s-]+(?<a>.+),";"i") | .a)
          else (.address_1|capture("^\\s*[0-9]+[\\s-]+(?<a>.+)";"i") | .a) #no suite
          end
        ),
        "addr:unit": (
          if (.address_1 | test("(?<!,).*suite";"i")) #suite without comma
          then (.address_1|capture("(?<a>suite.*)";"i") | .a)
          elif (.address_1 | test(",";"i")) #with comma
          then (.address_1|capture(",\\s*(<a>.*)";"i") | .a)
          else "" #no suite
          end
        ),
        "addr:city": .city,
        "addr:postcode": .zip_postal,
        "addr:state": .state_province,
        "phone": ("+1 " + .phone),
        "name": .business_name,
        "contact:email": .email,
        "office": "company",
        "cc:category": (.categories | values[] | join(";")),
        "cc:member_type": .member_type
      }
    }
  ]
}

curl "https://www.chamberorganizer.com/members/mem_xml/CCCC_members.json" | jq -f chamber.jq > chamber.geojson