SightMap JS IFrame API Demo
Apartments.com Demo
by Jacob Pearlstein
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>SightMap JavaScript IFrame API Example</title>
<script src="https://sightmap.com/embed/api.js">
</script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="margin">
<div class="head-container">
<div class="title">
<div class="textbox">
Welcome to SightMap
</div>
</div>
<div class="row mt-5">
<div class="col-md-4">
<button class="btn btn-primary mb-2" id="disable-ui"><span id="disable-ui-button-text">Disable</span> All UI</button>
<button class="btn btn-primary mb-2" id="disable-unit-list"><span id="disable-unit-list-button-text">Disable</span> Unit List</button>
<button class="btn btn-primary mb-2" id="disable-filters"><span id="disable-filters-button-text">Disable</span> Filters</button>
<button class="btn btn-primary mb-2" id="get-floor"><span id="get-floor-button">Get</span> Floor</button>
</div>
<div class="col-md-4">
<div class="input-group mb-2">
<input class="form-control" id="locate-unit-number" placeholder="Locate by unit number" />
<div class="input-group-append">
<button class="btn btn-success" type="button" id="locate-unit-number-button">Locate Unit</button>
</div>
</div>
<!-- START SET UNIT NUMBERS MATCHES -->
<div class="input-group mb-2">
<input class="form-control" id="display-unit-numbers" placeholder="Set Unit Number Matches (i.e. P2-101,P1-100,A-103,102)" />
<div class="input-group-append">
<button class="btn btn-success"...
CSS
* {
box-sizing: border-box;
}
html,
body {
height: 100%;
margin: 0 auto;
padding: 0;
font-family: open sans, sans-serif;
}
.margin {
margin: 20px;
height: 75%;
}
.head-container {
width: 95%;
margin: auto;
}
nav.container {
display: block;
background-color: #333333;
text-align: center;
margin: auto;
}
.nav-button {
text-align: center;
color: white;
width: 100%;
}
.sightmap-container {
height: 100vh;
min-height: 600px;
align-items: center;
justify-content: center;
}
.title {
background-color: hsl(211, 38%, 61%);
color: white;
margin: auto;
height: 15%;
}
.textbox {
text-align: center;
line-height: 233%;
font-size: 40pt;
}
.button-list {
display: flex;
flex-direction: row;
}
JavaScript
$('document').ready(function() {
// Create a new embed instance, providing the IFrame id value
var embed = new SightMap.Embed('sightmap');
console.log(embed);
embed.on('ready', function() {
console.log('hello world');
// Usage requirements go here
});
// Start Metrics API
embed.on('metrics.unitMatches.impression', function(event) {
console.log(event);
})
embed.on('metrics.unitMap.unit.click', function(event) {
console.log(event);
})
// sample delivery to datalayer
/*
embed.on('metrics.unitList.unit.click', function (event) {
var unitID = event.data.unit.mapId
var thisUnitData = thisUnitData = {
'planName': event.data.unit.floorPlan.name,
'planSqFt': String(event.data.unit.area),
'planBedrooms': String(event.data.unit.floorPlan.bedroomCount),
'planBathrooms': String(event.data.unit.floorPlan.bathroomCount),
'unitName': 'Apartment ' + event.data.unit.unitNumber,
'unitNumber': event.data.unit.unitNumber,
'unitPrice': event.data.unit.priceDisplay,
'dateAvailable': getFormattedDate(event.data.unit.availableOn)
}
console.log(thisUnitData)
dataLayer.push(thisUnitData)
});
*/
// End Metrics API
// Other events
embed.on('outbound.testKey.click', function(event) {
console.log(event);
})
embed.on('floor:change', function(event) {
console.log('floor id is now: ', event.id)
})
// Button functions
$("#get-floor").on('click', function(event) {
embed.getFloor(function(id) {
console.log('Active Floor ID:', id);
})
})
$("#set-floor-button").on('click', function(event) {
var value = $("#set-floor").val()
embed.setFloor(value)
})
$("#display-unit-numbers-button").on('click', function(event) {
var value = $("#display-unit-numbers").val().split(",")
...