Who can resist these faces? Every day, Broward County rescues pets — some lost, some injured, some abused and some abandoned — then makes them available for fostering and adoption.
Select a cat or dog from the map, which shows where they were picked up, or scan the list of pets available at the Broward County Animal Care and Adoption Center. The list of furry friends is updated twice a day.
If you find a pet you’re interested in, take note of the “Pet ID” and fill out an adoption application with the county here.
/* Arc overrides */
.artcl–sect-tmpl {
width: 100% !important;
}
/* Project styles */
.mapContainer {
max-width:800px;
margin: 80px auto 0;
}
.map{width:100%;height:500px;}
.map-title, .map-intro{
font-family:’Open Sans’, Arial, Sans-Serif;
margin: 5px auto;
}
.legend {
display: inline;
margin-right: 10px
}
.legend p {
text-align: center;
margin-bottom: 5px;
font: 400 .8em Open Sans, sans-serif;
}
.mapboxgl-popup-content {
max-width: 250px;
height: auto;
}
.popup-img {
max-width: 200px;
height:auto;
max-height:200px;
}
.popup-info-link {
background-color: #42b983;
padding: 2px;
display: block;
margin: 10px 0;
width: fit-content;
width: -moz-fit-content;
color: white;
}
.sourceText{
color: gray;
font-size: 14px;
}
Locations where pets were found
Cats
Note: Not all animals are displayed in the map. For a complete listing, view the list below.
https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js
https://api.tiles.mapbox.com/mapbox-gl-js/v1.6.0/mapbox-gl.js
https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v4.2.0/mapbox-gl-geocoder.min.js
mapboxgl.accessToken = ‘pk.eyJ1Ijoic3Vuc2VudGluZWwiLCJhIjoiY2pwaXZmdGF0MDA5cjN2cGc3Y3pubW91ZCJ9._n8C0h2WhIrdwnrHljYGYA’;
var map = new mapboxgl.Map({
container: ‘precinctMap’,
style: ‘mapbox://styles/mapbox/light-v10’,
center: [-80.3659,26.1901],
zoom: 8.5,
});
map.addControl(new mapboxgl.NavigationControl());
map.on(‘load’, function() {
var layers = map.getStyle().layers;
// Find the index of the first symbol layer in the map style
var firstSymbolId;
for (var i = 0; i response.json())
.then(data => {
map.addSource(‘petsSites’, {
type: ‘geojson’,
data: data
});
map.addLayer({
‘id’: ‘petsSites’,
‘type’: ‘circle’,
‘source’: ‘petsSites’,
‘paint’: {
‘circle-radius’: {
‘base’: 3,
‘stops’: [
[12, 5],
[22, 180]
]
},
‘circle-color’: [
‘match’,
[‘get’, ‘Species’],
‘Canine’,
‘#1e543b’,
‘Feline’,
‘#7ad0a9’,
‘#000’
],
}
}, firstSymbolId)
})
.catch((error) => {
console.error(‘Error:’, error);
});
})
var popup = new mapboxgl.Popup({
// closeButton: false,
closeOnClick: false
});
map.on(‘click’, ‘petsSites’, function (e) {
console.log(e.features[0].properties)
var animalName;
if (e.features[0].properties.AnimalName != “null”) {
animalName = e.features[0].properties.AnimalName
} else {
animalName = “No name”
}
new mapboxgl.Popup()
.setLngLat(e.lngLat)
.setHTML(“” + animalName + “
Found near ” + e.features[0].properties.PickupLocation + “, Age: ” + e.features[0].properties.age + “, ” + e.features[0].properties.breed + “
More info“)
.addTo(map);
});
// Add geocoder
const geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken, // Set the access token
mapboxgl, // Set the mapbox-gl instance
marker: true, // Use the geocoder’s default marker style
bbox: [-87.634938, 24.523096, -80.031362, 31.000888]
});
map.addControl(geocoder, ‘top-left’);
geocoder.setPlaceholder(‘Enter your address’);
geocoder.on(‘result’, function (data) {
/* Get the coordinate of the search result */
const result_latlng = data.result.center
map.flyTo({
center: result_latlng,
zoom: 10,
})
});
#right-rail{display:none !important}
#left{
grid-column:1/span 12;
float: none;
width: inherit;
}
.crd–cnt p {
max-width: 600px;
margin: 0 auto;
}
.crd–cnt h5 {
text-align: center;
margin-top: 20px;
}
.heavy-text {
max-width: 600px;
margin: 0 auto;
}
#pet-app {
display: relative;
flex-wrap: wrap;
width: 100%;
max-width: 800px;
margin: 0 auto;
padding: 5px;
}
#pet-counter{
text-align: center;
}
.pet-card {
margin:2em auto;
width: 100%;
border-radius: 5px;
overflow: hidden;
box-shadow: 0px 0px 21px 3px rgba(0, 0, 0, 0.15);
}
.pet-card-content {
display: flex;
flex-wrap: wrap;
}
.pet-card .img-container {
background-color: #000;
flex: 2;
min-width: 250px;
max-height: 360px;
}
.pet-card .img-container img {
object-fit: contain;
width: 100%;
height: 100%;
}
.pet-card .pet-info {
background: #fff;
flex: 3;
}
.pet-card .pet-info {
padding: 1em;
}
.pet-card .pet-info p {
color: #636363;
font-size: 0.9em;
font-weight: bold;
}
/* .pet-name {
font-family: ‘Open Sans’, sans-serif;
} */
.pet-id {
font: 700 1em ‘Open Sans’;
letter-spacing: 0px;
width: unset !important;
}
.pet-card .pet-info ul li {
color: #636363;
font-size: 0.9em;
margin-left: 0;
}
.petToggles {
text-align: center;
}
.petCategoryToggle {
width: 100px;
background-color: #000;
}
.btnActive {
background-color: #42b983;
}
.notesToggle {
text-align: center;
padding: 5px;
background-color: #42b983;
color: white;
font-weight: 600;
cursor: pointer;
}
.pet-notes {
}
.notes-table {
display: none;
overflow: hidden;
transition: 0.4s;
border-collapse: collapse;
width: 100%;
border: none;
outline: none;
padding: 10px;
}
td.note-date {
width: 30%;
}
{{ userFilter.length }} pets found
{{ pet.AnimalName }}
Pet ID: {{ pet.AnimalID }}
- Age: {{ pet.age }}
- Sex: {{ pet.sex}}
- Intake date: {{ pet.IntakeDate }}
- Intake description: {{ pet.IntakeDescription }}
- Color: {{ pet.color_primary}} {{ pet.color_secondary}}
- Breed: {{ pet.breed}}
- Size: {{ pet.size}}
Read shelter notes
{{ note.date }} | {{ note.note_text }} |
https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js
fetch(‘https://s3.amazonaws.com/content.sun-sentinel.com/data/pet-finder/broward_pets_available.json’).then(response=>response.json()).then(data => {
data = data.sort((a, b) => (a.AnimalName > b.AnimalName) ? 1 : -1)
var pets_app = new Vue({
el: ‘#pet-app’,
data: {
userFilterKey: ‘all’,
pets: data
},
computed: {
userFilter() {
return this[this.userFilterKey]
},
all() {
return this.pets
},
cats(){
return this.pets.filter((pet) => pet.Species == “Feline”)
},
dogs(){
return this.pets.filter((pet) => pet.Species == “Canine”)
}
},
methods: {
toggleNotes(event){
let notesTable = event.target.nextElementSibling
if (notesTable.style.display == “block”) {
event.target.innerHTML = “Read shelter notes”
notesTable.style.display = “none”
} else {
event.target.innerHTML = “Hide shelter notes”
notesTable.style.display = “block”
}
}
}
})
})