#php #sql #google-maps #real-time #geocode
#php #sql #google-карты #в режиме реального времени #геокодирование
Вопрос:
У меня есть раздел пожертвований на моем веб-сайте, и мне интересно, возможна ли следующая функция: у меня есть часть сайта для доноров, где я хотел бы включить карту Google, на которой есть пин-коды, размещенные во всех местах, откуда поступили пожертвования — эти местоположения не обязательно должны быть точными (думаю, IP-адрес будет работать нормально).
Мне было интересно, возможно ли создание карты Google, отображающей активность пожертвований в режиме реального времени. Если для этого требуются фактические данные (город, штат), я могу собрать эту информацию, потому что веб-сайт в настоящее время настроен следующим образом: пользователь выбирает сумму, которую он хотел бы пожертвовать, нажимает кнопку paypal, отправляет свое пожертвование через PayPal, перенаправляется на страницу благодарности, которая запрашивает имя, город и штат (эта информация хранится через MySQL). После того, как пользователь предоставит эти данные и нажмет кнопку отправить (на странице благодарности), они перенаправляются на страницу доноров… здесь я хотел бы иметь карту Google с пинами, представляющими всех людей, которые пожертвовали, и город, из которого они родом. Кроме того, поскольку данные загружаются в базу данных SQL, можно ли загрузить карту со всеми выводами, основанными на этих данных, и при этом обновлять ее новыми данными (в режиме реального времени)? Наконец, я использую PHP — есть конфликты с этим?
Если кто-нибудь может предложить какие-либо указания, я был бы очень благодарен. Я немного новичок, когда дело доходит до Google API, поэтому я не уверен в возможностях. Я также попытался просмотреть их документы и форумы, но не нашел ничего чрезвычайно полезного. Я благодарен за ваше время и благодарю вас за любую помощь!
Иван
Ответ №1:
Геолокацию браузера пользователя можно получить с помощью W3C geolocation API. Это довольно подробное описание, поэтому, если вы не готовы к чтению, я включил некоторый прототип кода, с которым я играл. В нем должен отображаться маркер с вашим текущим местоположением в браузере.
http://dev.w3.org/geo/api/spec-source.html
Вы можете сохранить информацию о долготе и широте в своей базе данных, а затем проанализировать ее и вставить маркеры в Google Maps с помощью javascript.
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=true">
</script>
<script type="text/javascript">
function initialize(location) {
var latlng = new google.maps.LatLng(location.coords.latitude,location.coords.longitude);
var myOptions = {
zoom: 19,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var marker = new google.maps.Marker({
position: latlng,
map: map,
title:"Hello World!"
});
}
</script>
</head>
<body onload="navigator.geolocation.getCurrentPosition(initialize);">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
Комментарии:
1. Спасибо за этот код; однако это не совсем то, что я ищу, но это хорошее начало. Я ищу код, который размещает на карте только людей, которые сделали пожертвование, не обязательно пользователей, которые заходят на страницу донора. Я боюсь, что этот код помещает кого угодно на карту, в то время как я пытаюсь показать только тех, кто пожертвовал. Я полагаю, что мой первоначальный вопрос заключается в проблеме… не ваш ответ. Итак, позвольте мне перефразировать: предполагая, что у меня есть данные о городе и штате (через SQL), как мне передать эти данные в Google Maps, чтобы они отображались на моем сайте? Также может ли Googlemap обновляться каждые несколько секунд? Спасибо
2. Предоставленный мной код позволит вам заполнить поле в форме, когда пользователь делает пожертвование. Это поле будет автоматически заполнено пользовательской долготой и широтой, которые могут быть сохранены в базе данных при отправке формы. Вы можете использовать javascript-команду setInterval() для отправки AJAX-запроса для новых жертвователей. w3schools.com/jsref/met_win_setinterval.asp Используйте Javascript API Google Map, чтобы добавить новые метки для новых жертвователей. (Добавить наложение) code.google.com/apis/maps/documentation/javascript /…