| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Website (website)
• Discuss (mail) |
| Lines of code | 837 |
| Technical Name |
website_map_picker |
| License | OPL-1 |
| Website | https://demo18.domiup.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Website (website)
• Discuss (mail) |
| Lines of code | 837 |
| Technical Name |
website_map_picker |
| License | OPL-1 |
| Website | https://demo18.domiup.com |
Website Map Picker
This module provides a reusable website map picker helper for public or portal pages.
Users can click on the map and trigger a callback route that returns a normalized payload with:
- latitude
- longitude
- display name
- full address text
- city, state, zip, country, and country code when available
The addon also ships a demo page so you can validate the widget directly from the website UI before integrating it into another frontend flow.
The helper model also centralizes address normalization for dependent addons, including country/state resolution, Vietnam-specific state-name cleanup, and form-ready payload enrichment.
Table of contents
Live preview is always available for you to have a look.
Using these login accounts to experience the features
| Login | Password | Role |
|---|---|---|
| demo | demo | Manager |
Configuration
For the default callback route, configure geolocation providers the same way as base_geolocalize :
- Open Settings and configure the geolocation provider you want to use.
- If you use Google, set the GeoCoding API key.
- If you use the public OpenStreetMap service, keep request volume low to avoid rate limits.
No extra configuration is required to open the demo page.
Manual UI test
Open /website_map_picker/demo on the website.
- Click on the map.
- The widget calls the configured callback route.
- The returned payload is shown under the map.
Reuse the helper in another page
Call the QWeb helper template:
<t t-call="website_map_picker.map_picker_helper"> <t t-set="picker_title" t-value="'Pick an address'" /> <t t-set="picker_description" t-value="'Click on the map to select a location.'" /> <t t-set="clickable" t-value="True" /> <t t-set="show_panel" t-value="True" /> <t t-set="default_address" t-value="''" /> <t t-set="callback_route" t-value="'/website_map_picker/location/info'" /> <t t-set="result_target" t-value="'#my_result_box'" /> </t>
Set clickable to False when the map should stay read-only. In that mode the cursor stays neutral and click events do not trigger the callback route.
Set show_panel to True when you want the built-in side panel with the status, coordinates, address, and raw payload. The helper hides that panel by default.
Show the logged-in user or another partner/user on the map
The helper model can prepare map defaults from a partner or user record.
Logged-in user:
<t t-set="map_defaults" t-value="request.env['website.map.picker.helper'].sudo().get_current_user_map_defaults()" /> <t t-call="website_map_picker.map_picker_helper"> <t t-set="picker_title" t-value="'Your current address'" /> <t t-set="picker_description" t-value="'The map starts from the logged-in user address.'" /> <t t-set="clickable" t-value="True" /> <t t-set="default_address" t-value="map_defaults.get('address', '')" /> <t t-set="default_latitude" t-value="map_defaults.get('latitude', 20)" /> <t t-set="default_longitude" t-value="map_defaults.get('longitude', 0)" /> <t t-set="default_zoom" t-value="map_defaults.get('zoom', 2)" /> <t t-set="result_target" t-value="''" /> </t>
Any partner or user:
<t t-set="map_defaults" t-value="request.env['website.map.picker.helper'].sudo().get_record_map_defaults(partner_record)" />
Pass a res.partner or res.users record as partner_record. If the record has no saved coordinates, the helper will try to geocode its address.
The widget also emits a browser event named website-map-picker:location-picked on the helper root element. Another frontend module can listen to that event and populate form fields without changing this addon.
Explore our Map View related modules on the Odoo App Store
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module