Skip to main content
3 of 4
added 326 characters in body
user3716774
  • 333
  • 1
  • 2
  • 7

If I want to find points 100 miles outside a county, what should I do?

Which way is correct? Use distance or buffer? I am not sure about this.

Here is how I use distance:

cursor.execute(""" SELECT COUNT(tw.user_id)
               FROM tweets tw, ca_census_tract ce
               WHERE ST_Distance(ST_Transform(tw.location,26986),
               ST_Transform(ce.geom,26986))>=160934 
               AND ce.name10='Alameda'; """)

cursor.fetchall()

and here is how I use buffer:

cursor.execute(""" SELECT COUNT(tw.user_id)
               FROM tweets tw, ca_census_tract ce
               WHERE ST_within(ST_Transform(tw.location,26986),
               ST_Buffer(ST_Transform(ce.geom,26986), 160934))=false
               AND ce.name10='Alameda'; """)

cursor.fetchall()

The tw.location are points.

Thank you very much!

------EDIT------ There was a small difference in the result and a huge difference in running time. The result from distance was 14818 and the result from buffer was 14899. I don't understand why there was a difference. And, the running time of buffer was much longer. By the way, the total number of the dataset was 100K.

user3716774
  • 333
  • 1
  • 2
  • 7