At first you have to catch visitors location. There are many plugins to catch visitors location such as “WassUp Real Time Analytics”
Also you have to create post custom fields for location.
Then you have to create a filter system in homepage that will check your post location field. After checking which post will be matched with visitor’s location that will display in home page. After that you can use post query for different categories.