Once you narrow down the country, you can use more specific factors like vegetation, specific landscapes, or architecture, ...
Support vector regression can predict numeric values effectively, and this article shows how to implement and train a kernel SVR model in C# using stochastic sub-gradient descent.
These implementations are for demonstration purposes. They are less efficient than the implementations in the Python standard library.