### 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
Transform2D xform;
							xform.set_origin(map_to_local(bodies_coords[body]));
							xform = gl_transform * xform;
							PhysicsServer2D::get_singleton()->body_set_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
						}
					}
				}
			}
		} break;
		case NOTIFICATION_LOCAL_TRANSFORM_CHANGED: {
			bool in_editor = false;
#ifdef TOOLS_ENABLED
			in_editor = Engine::get_singleton()->is_editor_hint();
#endif
			if (is_inside_tree() && !in_editor && collision_animatable) {
				
				new_transform = get_global_transform();
				for (int layer = 0; layer < (int)layers.size(); layer++) {
					for (KeyValue<Vector2i, TileMapQuadrant> &E : layers[layer].quadrant_map) {
						TileMapQuadrant &q = E.value;
						for (RID body : q.bodies) {
							Transform2D xform;
							xform.set_origin(map_to_local(bodies_coords[body]));
							xform = new_transform * xform;
							PhysicsServer2D::get_singleton()->body_set_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
						}
					}
				}
				
				set_notify_local_transform(false);