При использовании Google Street Map API на высоконагруженном сайте, довольно быстро количество загрузок этого самого API выходит за пределы 25000 за 90 дней. Это ограничение гугл, после которого Вам предлагают воспользоваться платной версией АПИ. 

Это может произойти не потом, что вы часто показывали карту и использовали API, а просто потому, что где-то в теле страницы был подключен скрипт

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>

Этого можно избежать, если подключать API только тогда, когда он действительно нужен. Делается это при помощи простой конструкции

function createMap () {
	if (window['google'] === undefined || window['google']['maps'] === undefined) {
		var googleapis = document.createElement('script');
		googleapis.src = 'http://maps.googleapis.com/maps/api/js?v=3&sensor=false&callback=OSMHasBeenLoaded';
		googleapis.setAttribute('type', 'text/javascript');
		document.body.appendChild(googleapis);
		window.OSMHasBeenLoaded = function () {
			createMap();
		}
		return;
	}

	return new google.maps.Map(document.getElementById('map'), {
		center: new google.maps.LatLng(lat || 55, lng || 34),
		zoom: 3,
		mapTypeId: "OSM",
		mapTypeControl: false,
		streetViewControl: false
	});	
}

Тут обратите внимание, что мы грузим другой URL скрипта. Потому что прежний, указанный в начале, грузит скрипт, который использует конструкцию document.write и не может сделать это асинхронно. Если вы подключите его, то столкнетесь с тем, что при создании карты, вывалится ошибка

google.maps.LatLng is undefined

Но при этом google.maps будет существовать.

Всего доброго

Рассказать друзьям

Добавить комментарий


Защитный код
Обновить