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