| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 305 |
| Technical Name |
tw_map_widget |
| License | LGPL-3 |
| Website | https://www.linkedin.com/in/nagara-liong-50ab07136/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 305 |
| Technical Name |
tw_map_widget |
| License | LGPL-3 |
| Website | https://www.linkedin.com/in/nagara-liong-50ab07136/ |
TW Map Widget
Premium Interactive Maps Integration for Odoo 18
Key Features
Interactive OWL Widget
A fully responsive, modern OWL component that provides seamless map interactions directly in your Odoo forms.
Multi-Provider Support
Easily switch between OpenStreetMap (Leaflet) and Google Maps API seamlessly based on your system parameters.
Bi-directional Sync
Drag a pin to update coordinates, or manually type coordinates to move the pin. Real-time data binding built-in.
Readonly Mode NEW
Fully supports readonly="1". Locks the map pin in place while keeping the map visually interactive for panning and zooming.
Reverse Geocoding
Automatically resolves addresses. Dragging the pin will automatically populate the associated address fields.
Mobile Friendly
Works flawlessly on mobile and tablet devices, offering a native touch-friendly experience across the board.
How to Use
-
1. Install: Install the TW Map Widget and configure your preferred provider in Settings > General Settings > Integrations.
-
2. Add Field: Add a
JSONfield to your Python model to store map data. -
3. Add to View: In your XML view, simply use
widget="tw_map"on your field. -
4. Configure Sync: Use
options="{'lat_field': 'your_lat_field', 'long_field': 'your_long_field', 'address_field': 'your_street'}"to sync the map pin with specific fields. -
5. Readonly Support: Add
readonly="1"to disable drag-and-drop map manipulation, perfect for approved or locked records.
Code Example
XML Implementation
<group string="LOCATION">
<field name="lat" required="1"/>
<field name="long" required="1"/>
<field name="map_location"
widget="tw_map"
options="{'lat_field': 'lat', 'long_field': 'long', 'address_field': 'street'}"/>
</group>
<group string="ADDRESS">
<field name="street" placeholder="Street..." required="1"/>
<div>
<field name="rt" placeholder="RT" style="width: 50%"/>
<field name="rw" placeholder="RW" style="width: 50%"/>
</div>
<field name="state_id" class="oe_no_button" placeholder="Provinsi" required="1"/>
<field name="city_id" placeholder="Kota / Kab" required="1"/>
<field name="district_id" placeholder="Kecamatan" required="1"/>
<field name="sub_district_id" placeholder="Kelurahan" required="1" />
</group>
Need Help or Customization?
Our team is ready to assist you in integrating or customizing the TW Map Widget for your unique business needs.
Contact Us
Please log in to comment on this module