Custom rewrite url structure for several custom taxonomy (NOT pos_type)

The rewrite rules to resolve these requests are fairly simple:

function wpd_property_rules(){
    add_rewrite_rule(
        'property-city/([^/]+)/([^/]+)/page/?([0-9]{1,})/?$',
        'index.php?property_city=$matches[1]&property_type=$matches[2]&paged=$matches[3]',
        'top'
    );
    add_rewrite_rule(
        'property-city/([^/]+)/([^/]+)/?$',
        'index.php?property_city=$matches[1]&property_type=$matches[2]',
        'top'
    );
}
add_action( 'init', 'wpd_property_rules' );

There are a couple of problems though. You’ll need to generate these links somehow, but there’s no relationship between two taxonomies except by looking at all posts to see what terms they share. The other issue is that since there is no hierarchical relationship between taxonomies, template tag output for these are somewhat random. For example, a page with both city and type will “identify” itself as a city archive, when you could argue it would more appropriately be a type archive, since cities are further divided by type.