Follow these steps to add the Local Context Library to your project, initialize, and configure the Local Context map view.
Enabling the required APIs and SDKs
To use the Local Context Library, you must enable the Maps JavaScript API and the Places API. To do this, follow the instructions to Enable one or more APIs or SDKs. Note that both APIs must be enabled in the same project in the Google Cloud Console.
Loading the Local Context Library
To load the Local Context Library, load the Maps JavaScript API as you normally would, and include the following parameters:
libraries=localContext
loads the Local Context Library.v=beta
is required to use this release.key
contains your API key.callback
executes theinitMap()
function.
The following example shows a script tag with all of the aforementioned options:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=localContext&v=beta&callback=initMap">
</script>
Creating a new Local Context map view
To add the Local Context Library to a web page, first
create a LocalContextMapView
instance, and set the desired properties:
element
- Thediv
element where the map should display (in this case it's named "map").placeTypePreferences
- types of places that the Local Context Library should return (up to 10).maxPlaceCount
- The maximum number of places to display (1 - 24).locationRestriction
(Optional) - Restricts the place search to a particular location. Defaults to the map viewport.
Once you have a LocalContextMapView
instance, you can set Map Options
on the inner Map
instance. The Map contained by a LocalContextMapView
supports all of the same map options as a standard Maps JavaScript API
Map. The following example shows creating a new LocalContextMapView
instance,
and setting a few options on the inner Map
:
TypeScript
let map: google.maps.Map; function initMap() { const localContextMapView = new google.maps.localContext.LocalContextMapView({ element: document.getElementById("map"), placeTypePreferences: [ { type: "restaurant" }, { type: "tourist_attraction" }, ], maxPlaceCount: 12, }); map = localContextMapView.map!; map.setOptions({ center: { lat: 51.507307, lng: -0.08114 }, zoom: 14, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
let map; function initMap() { const localContextMapView = new google.maps.localContext.LocalContextMapView({ element: document.getElementById("map"), placeTypePreferences: [ { type: "restaurant" }, { type: "tourist_attraction" }, ], maxPlaceCount: 12, }); map = localContextMapView.map; map.setOptions({ center: { lat: 51.507307, lng: -0.08114 }, zoom: 14, }); } window.initMap = initMap;
Postpone loading Local Context data
You can postpone loading Local Context data at initialization
time, by setting the LocalContextMapView
maxPlaceCount
option to 0. This is
handy in situations where you want to wait until users are ready to see the
data. When you're ready to load Local Context data, set
maxPlaceCount
to a value of 1 or more. The following example shows
initializing the map without loading Local Context data, then
setting maxPlaceCount
to load the data:
// Initialize without Local Context data.
const localContextMapView = new google.maps.localContext.LocalContextMapView({
element: document.querySelector('#map'),
placeTypePreferences: ['restaurant'],
maxPlaceCount: 0, // Avoids an automatic call to load places during initialization.
});
//...
// Show places now.
localContextMapView.maxPlaceCount = 12;
Toggle displaying Local Context UI
You can toggle the Local Context user interface elements by
setting the LocalContextMapView
maxPlaceCount
option to 0. To display the
Local Context user interface again, set maxPlaceCount
to a
value of 1 or more.
Setting minimum map dimensions
The Local Context Library responsively changes the
display based on the rendered size of the LocalContextMapView
. The minimum
supported dimensions for the LocalContextMapView
are:
- 300 pixels x 480 pixels (portrait)
- 480 pixels x 380 pixels (landscape)
When the containing element for the LocalContextMapView
drops below the
minimum supported dimensions, Local Context Library
elements, including the place chooser and points of interest, are not visible.
Browser zoom level affects the minimum supported dimensions; for example if
the browser window is zoomed to 200%, the minimum supported dimensions are then
600 x 960 (portrait) and 960 x 760 (landscape).
CSS recommendations
CSS classes in the Local Context Library DOM are not part of the public API, and styling, modifying, or selecting elements within the Local Context Library DOM is not supported. We strongly recommend the following guidelines to avoid DOM styling conflicts, and ensure that the Local Context Library map view displays properly:
- Do not use Local Context Library CSS classes, as they may change without notice.
- Do not style, modify, or select elements within the Local Context Library DOM.
If you use a CSS framework that makes such modifications, then you may be able to work around styling conflicts.
For example, if you want to change the overall page box-sizing
to border-box
:
- Use
box-sizing
overrides that set the<html>
element toborder-box
. - Use
box-sizing: initial
for the element that contains the Local Context Library map view. - Use
box-sizing: inherit
for all other elements.
This ensures that the Local Context Library DOM has
box-sizing
reset to the standard default with a low-specificity selector.
Here is what this looks like in code:
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
.container-for-google-maps {
box-sizing: initial;
}