JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://maps.googleapis.com/maps/api/js?"></script>
<div id="sum" class="sum">0</div>
<div id="map" class="map"></div>

CSS

.map {
  height: 500px;
}

.sum {
  border-bottom: 1px solid #ccc;
  margin-bottom: 20px;
  padding-bottom: 20px;
  
}

.sum:after {
  content: ' руб'
}

JavaScript

class Calc {
	constructor () {
  	// Данные по объектам
  	this.objects = [
      {
        id: 1,
        title: 'Название объекта 1',
        price: 10000,
        mapPosition: { // Координаты объекта на карте
          lat: -34.397,
          lng: 150.644
        }
      },
      {
        id: 2,
        title: 'Название объекта 2',
        price: 20000,
        mapPosition: { // Координаты объекта на карте
          lat: 34.397,
          lng: 170.123
        }
      },
      {
        id: 3,
        title: 'Название объекта 3',
        price: 30000,
        mapPosition: { // Координаты объекта на карте
          lat: 10.987,
          lng: 54.456
        }
      }
    ];
    
    // Объект с картой
    this.map = null;
    
    // Маркеры на карте
    this.mapMarkers = [];
    
    // Выбранные маркеры
    this.selectObjects = [];
    
    // Сумма выбранных объектов
    this.currentSum = 0;
    
    // Элементы калькулятора
    this.calcElements = {
    	map: document.getElementById('map'),
    	sum: document.getElementById('sum')
    };
    
    this.initMap();
  }
  
  // Инициализация карты
  initMap () {
    this.map = new google.maps.Map(this.calcElements.map, {
      zoom: 2
    });
    
    // Запускаем установку обхектов на карту
    this.setObjectsInMap(this.objects);
  }
  
  // Добавить маркер на карту
  addMarker (markerData) {
  	let self = this;
    
    // Создание маркера на карте
  	let marker = new google.maps.Marker({
      position: markerData.mapPosition,
      map: this.map,
      animation: google.maps.Animation.DROP,
      id: markerData.id 
    });
    
    // Вешаем клик на маркер
    marker.addListener('click', function () {
    	self.onSelectMarker(this);
    });
    
    // Центрируем карту по координатам маркера
    this.map.setCenter(markerData.mapPosition);
    
    // Пушим все установленные маркеры
    this.mapMarkers.push(marker);
  }
  
  // Установить объекты на карту
  setObjectsInMap (objects) {
  	objects.forEach(item...