generate custom permalink based on a custom field

Try this plugin Custom Post Type Permalinks, it allows you to set permalinks for custom post types. If your client does not want additional plugin then this plugin is also available on GitHub you can fork it or include this functionality in your own plugin or your functions.php.

In order to use anything dynamic in the permalink, it has to be a Structure Tag e.g. Custom Taxonomies, Author Name, Date Published, etc.
So you need to have a taxonomy called ‘City’ which you will select while creating the post and then you can use the taxonomy in the Setings->Permalinks ->

%city%/%postname%

Look at this screenshot for a better understanding:
Screenshot of Custom Post Type Permalinks plugin