Events
JavaScript events are emitted using JavaScript's Window: postMessage method.
Receiving Events
window.addEventListener('message', event => {
// Restrict the event listener to only respond to intended sources.
if (event.origin !== 'https://<YOUR_EMBED_DOMAIN>/embedded/map') return;
console.log(event.data);
});
Available Events
parcel:viewed
Emitted for any parcel details selected from the Parcels map layer.
{
"event_type": string,
"payload": GeoJSON Feature<MultiPolygon | Polygon>
}
Example:
{
"event_type": "parcel:viewed",
"payload": {
"type": "Feature",
"id": "15009bee-5713-4338-9d8a-600b7b598ff1",
"properties": {
"acres": 40.0,
"assessor_parcel_number": "1106400003",
"county": "DeKalb",
"county_geoid": "17037",
"county_long_name": "DeKalb County",
"id": "15009bee-5713-4338-9d8a-600b7b598ff1",
"path": "us/il/dekalb/1106400003",
"state": "IL"
},
"geometry": {
"coordinates": [
[
[-88.812051, 41.8852985],
[-88.81603249999999, 41.8852845],
[-88.82182399999999, 41.8852645],
[-88.821843, 41.8816315],
[-88.8218615, 41.878105999999995],
[-88.820219, 41.878108],
[-88.81206499999999, 41.878118],
[-88.812051, 41.8852985]
]
],
"type": "Polygon"
}
}
}
parcel:collection_changed
Emitted for any change in the selected parcels.
{
"event_type": string,
"payload": GeoJSON FeatureCollection<Polygon | MultiPolygon, ParcelViewedProperties>
}
Example:
{
"event_type": "parcel:collection_changed",
"payload": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "e57c840b-3bf6-4a6e-b6c6-9a3222eb4b9f",
"properties": {
"acres": 157.19,
"assessor_parcel_number": "121209300002",
"county": "Livingston",
"county_geoid": "17105",
"county_long_name": "Livingston County",
"id": "e57c840b-3bf6-4a6e-b6c6-9a3222eb4b9f",
"path": "us/il/livingston/121209300002",
"state": "IL"
},
"geometry": {
"coordinates": [
[
[-88.314281, 40.9991505],
[-88.314353, 41.000961],
[-88.3239505, 41.0007995],
[-88.32368149999999, 40.993614],
[-88.31693399999999, 40.993708999999996],
[-88.3169585, 40.9947105],
[-88.31574499999999, 40.994727499999996],
[-88.3157205, 40.993725999999995],
[-88.3140675, 40.9937495],
[-88.314281, 40.9991505]
]
],
"type": "Polygon"
}
}
]
}
}
farm_sale:viewed
Emitted for any farm sale selected from the Farm Sales map layer.
{
"event_type": string,
"payload": GeoJSON Feature<Point>
}
Example:
{
"event_type": "farm_sale:viewed",
"payload": {
"type": "Feature",
"id": 4389254,
"properties": {
"id": 4389254,
"gross_acres": 200,
"county": "Livingston",
"state": "Illinois",
"county_geoid": "17105",
"sale_type": "auction"
},
"geometry": {
"coordinates": [-88.708, 41.0451],
"type": "Point"
}
}
}
Sending Events
The embedded map will react to events that you post into its contentWindow. Always
pass your CamoAg embed origin as the targetOrigin so the message can only be received
by the intended iframe.
const embeddedMap = document.getElementById('embeddedMap');
embeddedMap.contentWindow.postMessage(
{
event_type: 'parcel:collection_remove_by_id',
payload: { id: '15009bee-5713-4338-9d8a-600b7b598ff1' },
},
'https://<YOUR_EMBED_DOMAIN>',
);
Available Events
parcel:collection_remove_by_id
Removes a single parcel from the selected collection. The id matches the
properties.id of a parcel feature previously returned by
parcel:collection_changed.
{
"event_type": string,
"payload": { "id": string }
}
Example:
{
"event_type": "parcel:collection_remove_by_id",
"payload": {
"id": "15009bee-5713-4338-9d8a-600b7b598ff1"
}
}
After the parcel is removed, the embedded map emits an updated
parcel:collection_changed event reflecting the new
selection.
parcel:collection_remove_all
Clears every parcel from the selected collection.
{
"event_type": string
}
Example:
{
"event_type": "parcel:collection_remove_all"
}
After the collection is cleared, the embedded map emits an updated
parcel:collection_changed event with an empty
features array.