You can add objects to the map to designate points, lines, areas, or
collections of objects. The Maps JavaScript API calls these objects
**overlays**. Overlays are tied to latitude/longitude
coordinates, so they move when you drag or zoom the map.

> [!NOTE]
> **Drawing Library:** If you want to allow your users to draw on the map, please refer to the [Drawing Library](https://developers.google.com/maps/documentation/javascript/drawinglayer) documentation. With the tools available in the Drawing Library, you can provide a graphical interface that lets people draw polylines, polygons and markers on the map.

> [!NOTE]
> **Geocoding:** Retrieving latitudes and longitudes for a Place or a street address is easily done with a [Geocoding](https://developers.google.com/maps/documentation/javascript/geocoding.md.txt) request. It will return a list of responses, each including a `LatLng`.

## Overlay types

The Maps JavaScript API has several types of overlays that you can add
programmatically:

- An **info window** is a special kind of overlay for displaying content (usually text or images) within a popup balloon at a given location on a map. See [Info Windows](https://developers.google.com/maps/documentation/javascript/infowindows.md.txt).
- Lines on the map are displayed using **polylines** representing an ordered sequence of locations. See [Shapes and lines](https://developers.google.com/maps/documentation/javascript/shapes.md.txt#polylines).
- Areas of arbitrary shape on the map are displayed using **polygons** . Like polylines, polygons are an ordered sequence of locations. Unlike polylines, polygons define a region which they enclose. See [Shapes and lines](https://developers.google.com/maps/documentation/javascript/shapes.md.txt#polygons).
- You can also define [circles](https://developers.google.com/maps/documentation/javascript/shapes.md.txt#circles) and [rectangles](https://developers.google.com/maps/documentation/javascript/shapes.md.txt#circles) on the map.
- Use a **symbol** to customize the icon on a marker or add images to a polyline. A symbol is a vector-based image defined by a path, using SVG path notation. The API also provides options to control how the symbol will be displayed. See [Symbols](https://developers.google.com/maps/documentation/javascript/symbols.md.txt).
- If you want to place an image on a map, you can use a **ground overlay** . See [Ground Overlays](https://developers.google.com/maps/documentation/javascript/groundoverlays.md.txt).
- You may also implement your own **custom overlays** by implementing the `OverlayView` interface. See [Custom Overlays](https://developers.google.com/maps/documentation/javascript/customoverlays.md.txt).
- Map layers may be displayed using **overlay map types** . You can create your own set of tiles by creating custom map types which either replace base map tile sets, or appear on top of existing base map tile sets as overlays. See [Custom Map Types](https://developers.google.com/maps/documentation/javascript/maptypes.md.txt#CustomMapTypes).