1- Is doing it by shortcodes a good way to go?
Shortcodes! Why would you use shortcodes. You may have read about the WordPress before and this is great! But please provide the idea why?
2- If I put the code in the page template, is there a way a single template may be used for all posts. That is, can the page template decide which filters to use for the list of posts based on the content or tags of the current post. e.g. for City 1 it needs to display Landmark A & B and State 1, but for City 2 it should display Landmark C & D and State 1. Which means it should be using different tags to filter through the posts.
As I see this you need to have a CPT (custom post type) that you can call city
. And you may use the Custom Taxonomy for the state.
If not custom taxonomy you may use category to designate the state.
If not both of these you may use the meta key for the state also. No problem.
3- Is there some other method or platform out there that would be better suited to my needs. I am a newcomer to WordPress, so I wouldn’t mind switching to something else, I face a learning curve both ways.
Ah, you asked a blacksmith if there is a better blacksmith. This is not a smart question.
You need to read about the post meta information, and featured images.
The drawing I tried to optimize for the lazy people, so you create te minimum WordPress code to achieve that.
Please describe the landmark also we may need to improve the structure.