Map view
Some resources that contain geospatial data can benefit from being displayed on a map. For resources to be displayed to the map view they require a coordinates field, but that's customizable.
Enable map view
To enable map view for a resource, you need to add the map_view class attribtue to a resource. That will add the view switcher to the Index view.

class CityResource < Avo::BaseResource
# ...
self.map_view = {
mapkick_options: {
controls: true
},
record_marker: -> {
{
latitude: record.coordinates.first,
longitude: record.coordinates.last,
tooltip: record.name
}
},
table: {
visible: true,
layout: :right
}
}
end-> mapkick_options
-> record_marker
You may use this block to fetch the coordinates from other places (API calls, cache queries, etc.) rather than the database.
This block has to return a hash compatible with the PointMap items. Has to have latitude and longitude and optionally tooltip, label, or color.
-> table
Make it the default view
To make the map view the default way of viewing a resource on Index, we have to use the default_view_type class attribute.
class CityResource < Avo::BaseResource
self.default_view_type = :map
end
Friendly.rb - Your friendly European Ruby Conference