2

I'm working through a book that deals with MEAN applications... and in the book it deals with geo-spatial data and creates a Review for Businesses (Think: Yelp. Look for businesses close to a location then select, see reviews and add your own!!! SO EXCITING!!!).

The problem I'm having is the book doesn't really provide a good data set... or actual data at all - just a couple very short examples and how to create more.

Given a location - say a state: Delaware, California, Australia... or a central point on map... or a "BBOX"... what's the best place to get a set of data of:

Business Name
Address
Hours of Operation
Long
Lat

I can absolutely fudge missing parts (Hours of operation and other things not listed here that the app displays about the "Businesses") and I can massage the data into an input stream for the database - so I'm more concerned about the raw data as opposed to the format/output: I'd love to have a realistic data-set even if it is outdated - and those are the "core" parts of whats needed for the examples in the book.

OpenStreetMaps might have what i want, but the options are daunting and I can't seem to weed through the noise. Is what I want there and I'm just not seeing it? Or are there any other better data-sets - realistic if not "real" or "current".

(Note: I'm currently at work. I have a data-set at home that I can't seem to find here that has "vacation" type businesses - hotels, inns, etc that is "close" but not as expansive and inclusive as I'd like. I'll add a link to it if I can find it or when I get home)

PS: Link to book chapter, an example image of a "Review Page" I'm trying to finangle data for and a single data item:

Example Image

location: {
  name: 'Starcups',
  address: '125 High Street, Reading, RG6 1PS',
  rating: 3,
  facilities: ['Hot drinks', 'Food', 'Premium wifi'],
  coords: {lat: 51.455041, lng: -0.9690884},
  openingTimes: [{
    days: 'Monday - Friday',
    opening: '7:00am',
    closing: '7:00pm',
    closed: false
  },{
    days: 'Saturday',
    opening: '8:00am',
    closing: '5:00pm',
    closed: false
  },{
    days: 'Sunday',
    closed: true
  }],
  reviews: [{
    author: 'Simon Holmes',
    rating: 5,
    timestamp: '16 July 2013',
    reviewText: 'What a great place. I can\'t say enough good things about it.'
  },{
    author: 'Charlie Chaplin',
    rating: 3,
    timestamp: '16 June 2013',
    reviewText: 'It was okay. Coffee wasn\'t great, but the wifi was fast.'
  }]
}

(First question here, so please re-tag, suggest edits and ask for clarifications)

1

Second OSM answer of the day, where question says OSM is daunting :)

OSM isn't so daunting, because you can download only individual maps and then quickly filter the tags you want. Let's use Delaware, because it's small enough.

Steps

  1. Download delaware.osm.pbf from geofabrik.de - http://download.geofabrik.de/north-america/us/delaware.html

  2. Convert pbf to osm format - https://wiki.openstreetmap.org/wiki/Osmconvert#Converting_Files

osmconvert delaware.osm.pbf > delaware.osm
  1. Filter for relevant tags (amenity=restaurant)
osmfilter delaware.osm --keep="amenity=restaurant" > delaware.restaurants.osm
  1. Convert to format of your choice, try ogr2ogr. Here's a Spatia/SQLite example, but any format is possible. Probably GeoJSON works for you, because it can be extended with the other data you need.
ogr2ogr -f SQLite -dsco SPATIALITE=YES delaware.restaurants.sqlite delaware.restaurants.osm 
  • As a techie and a programmer... I'm constantly "lost" in options, methods, data-sets, alternative routes, different libraries - this is the first I've seen a pbf file for example. This looks like a great answer and a push in the right direction... A very big rabbit hole i can definitely get lost in - both a good and bad thing lol. – WernerCD Feb 21 '18 at 16:24
  • geofabrik and wiki.openstreetmap.org/wiki/Osmconvert#Writing_CSV_Files looks like where I'll be spending my energy tonight :) Thank you... I'll post quick replies here or ask new questions if needed. – WernerCD Feb 21 '18 at 16:27
  • 8.1gb of data for north america... lol god help me – WernerCD Feb 22 '18 at 0:56
  • that's why I suggest starting with Delaware... I work locally for a small region and then roll it out for the entire world on a high performance cloud machine, which only gets turned on a few hours as needed. – philshem Feb 22 '18 at 7:04

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.