Во время создания одного проекта связанного с арендой недвижимости возникла маленькая задачка с подключением Google Maps API. Владелец сайта создавал карточки товара (квартир) и ему необходим был вывод месторасположения квартиры на карте гугл, в одной из вкладок.
Подключив google api и перечитав их мануал я так и не нашел как же задать для вывода не координаты а именно адрес местоположения.
Давайте подготовим наш документ:
<script src="https://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <input type="hidden" id="address" value="Ровно, ул.Шухевича2" /> <input type="hidden" id="company" value="RAMStudio" /> <input type="hidden" id="url" value="https://moroz.rv.ua" /> <input type="hidden" id="phone1" value="(066) 992-99-18" /> <input type="hidden" id="phone2" value="(067) 992-99-18" /> <input type="hidden" id="img" value="company.jpg" /> <div style=" width: 100%; height: 400px;" id="map_canvas"></div>
Отлично. Каркас для вывода карты у нас есть. Далее напишем функцию инициализации карты и будем запускать ее при окончании загрузки страницы.
<script type="text/javascript"> $(document).ready(function(){ var geocoder; var map; var address = $('#address').val(); var company = $('#company').val(); var url = $('#url').val(); var phone1 = $('#phone1').val(); var phone2 = $('#phone2').val(); var img = $('#img').val(); function initialize() { geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(-34.397, 150.644); var myOptions = { zoom: 15, scrollwheel: false, // запрет прокрутки колесиком center: latlng, mapTypeControl: true, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DROPDOWN_MENU }, navigationControl: true, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); if (geocoder) { geocoder.geocode({ 'address': address }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (status != google.maps.GeocoderStatus.ZERO_RESULTS) { map.setCenter(results[0].geometry.location); var infowindow = new google.maps.InfoWindow({ content: '<b><a href="' + url + '" target="_blank">' + company + '</a> <br /><img width="200px" src="' + img + '" /><br />' + address + ' <br />тел.' + phone1 + ' <br />тел.' + phone2 + '</b>', size: new google.maps.Size(300, 100) }); var marker = new google.maps.Marker({ position: results[0].geometry.location, map: map, title: address }); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map, marker); }); } else { alert("No results found"); } } else { alert("Geocode was not successful for the following reason: " + status); } }); } } google.maps.event.addDomListener(window, 'load', initialize); }); </script>
Да вот и все. Пример можете посмотреть.