### Godot version

v4.0.beta11.official [91713ced8]

### System information

MX Linux 21

### Issue description

In Godot 3, TileMap had methods get_used_cells() and get_used_cells_by_id(). Godot 4's TileMap only has get_used_cells() and is missing get_used_cells_by_id().

get_used_cells_by_id() is highly useful in multiple cases, for example when trying to get all cells that are of road type, to randomly spawn a car.

Re-implementing get_used_cells_by_id() should be simple. The method could simply call get_used_cells(), and ignore all cells that are of the wrong ID.

### Steps to reproduce

N/A

### Minimal reproduction project

N/A
CanvasItem::set_texture_filter(p_texture_filter);
	TextureFilter target_filter = get_texture_filter_in_tree();
	for (unsigned int layer = 0; layer < layers.size(); layer++) {
		for (HashMap<Vector2i, TileMapQuadrant>::Iterator F = layers[layer].quadrant_map.begin(); F; ++F) {
			TileMapQuadrant &q = F->value;
			for (const RID &ci : q.canvas_items) {
				RenderingServer::get_singleton()->canvas_item_set_default_texture_filter(ci, RS::CanvasItemTextureFilter(target_filter));
				_make_quadrant_dirty(F);
			}
		}
		_rendering_update_layer(layer);
	}
}
void TileMap::set_texture_repeat(CanvasItem::TextureRepeat p_texture_repeat) {
	
	CanvasItem::set_texture_repeat(p_texture_repeat);
	TextureRepeat target_repeat = get_texture_repeat_in_tree();
	for (unsigned int layer = 0; layer < layers.size(); layer++) {
		for (HashMap<Vector2i, TileMapQuadrant>::Iterator F = layers[layer].quadrant_map.begin(); F; ++F) {
			TileMapQuadrant &q = F->value;
			for (const RID &ci : q.canvas_items) {
				RenderingServer::get_singleton()->canvas_item_set_default_texture_repeat(ci, RS::CanvasItemTextureRepeat(target_repeat));
				_make_quadrant_dirty(F);
			}
		}
		_rendering_update_layer(layer);
	}
}
TypedArray<Vector2i> TileMap::get_surrounding_cells(const Vector2i &coords) {