Intereting Posts
Подписка на EWS Push с помощью PHP Выполнение скрипта PHP с использованием объектно-c Интеграция MarkerClusterer с базой данных Google Map V3 использование usort с ассоциативным массивом внутри контроллера symfony2 Как предотвратить PHP для преобразования объекта DateTime с значением 0000-00-00 в значение -0001-11-30 Php, как издеваться над экземпляром объекта? Как передать переменную из файла php в bat и прочитать ее результат? Создать строку из регулярного выражения PHP форматированный XML-файл с использованием php Laravel 5 Seeder – несколько рядов в DB PHP strip_tags: разрешить только первый тег Загрузите thubnails изображения с помощью Dropbox API для php Я не могу получить свою форму для подключения, чтобы правильно взаимодействовать с базой данных mySQL Доступ AWS S3 запрещен при получении изображения по URL-адресу MySQL Search w / Упорядоченные подстановочные знаки и извлечение их значений

Обратный геокодирование на Google Maps api v3

Интересно, может ли кто-нибудь помочь мне.

Я использую приведенный ниже код для правильного построения маркеров, полученных из базы данных MySQL на карте Google.

<script type="text/javascript"> //Sample code written by August Li var icon = new google.maps.MarkerImage("images/location-marker-2.png") new google.maps.Point(16, 32); var center = null; var map = null; var bounds = new google.maps.LatLngBounds(); function addMarker(lat, lng, info) { var pt = new google.maps.LatLng(lat, lng); bounds.extend(pt); var marker = new google.maps.Marker({ position: pt, icon: icon, map: map }); } function initMap() { map = new google.maps.Map(document.getElementById("gmaps-canvas"), { center: new google.maps.LatLng(0, 0), zoom: 6, scrollwheel: true, draggable: true, mapTypeId: google.maps.MapTypeId.SATELLITE }); <?php include("admin/link.php"); include("admin/opendb.php"); $query = mysql_query("SELECT * FROM `detectinglocations` WHERE `locationid` = '$lid'"); while ($row = mysql_fetch_array($query)){ $locationname=$row['locationname']; $osgb36lat=$row['osgb36lat']; $osgb36lon=$row['osgb36lon']; echo ("addMarker($osgb36lat, $osgb36lon,'<b>$locationname</b><br/>');\n"); } mysql_close($connect); ?> center = bounds.getCenter(); map.fitBounds(bounds); } </script> 

То, что я сейчас пытаюсь сделать, это добавить дополнительные функции, которые позволят пользователям также щелкнуть по карте, чтобы нарисовать новые маркеры, по существу используя ранее существовавший маркер из базы данных в качестве точки для работы, выполняя reverse geocode .

Я исследовал это уже несколько дней, и я попытался реализовать целый ряд учебных пособий, но я просто не могу заставить обе части функциональности работать.

Я знаю, что для включения события с on-click мне нужно включить что-то в соответствие с:

google.maps.event.addListener(map, 'click', function(event) { marker.setPosition(event.latLng) geocode_lookup( 'latLng', event.latLng ); }); }

но я должен признать, что я немного не уверен в том, что еще мне нужно включить.

Я просто задавался вопросом, может ли кто-нибудь взглянуть на это, пожалуйста, и я был бы очень благодарен, если бы кто-нибудь мог показать мне, где я ошибся.

Большое спасибо и добрые пожелания

Solutions Collecting From Web of "Обратный геокодирование на Google Maps api v3"

Я написал отдельную страницу карт с функциональностью только с щелчком на обратный геокод

http://jsfiddle.net/ZDQeM/

Я думаю, данные адреса сбивают с толку. Результатом является массив, на разных уровнях точности, который может включать графство, другое состояние, другое – адрес улицы. Обычно я использую только результаты [0]. Подробности приведены в документах: https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingResponses

Если вам нужна конкретная информация, верный способ ее получить – это перебрать весь массив результатов, пока не найдете то, что вам нужно (например, типы [], содержащие почтовый_код).

  google.maps.event.addListener(map, 'click', function(event) { userMarker = new google.maps.Marker({ map: map, position: event.latLng }); geocoder.geocode({'latLng': event.latLng}, function(results, status) { if(status == google.maps.GeocoderStatus.OK) { if (results[0]) { alert(results[0].formatted_address); } else { alert("No results"); } } else { alert("Geocoding unsuccessful: Status " + status); } }); }); 

Где в вашем коде?

 <script type="text/javascript"> //Sample code written by August Li var icon = new google.maps.MarkerImage("images/location-marker-2.png") new google.maps.Point(16, 32); var center = null; var map = null; var bounds = new google.maps.LatLngBounds(); function addMarker(lat, lng, info) { var pt = new google.maps.LatLng(lat, lng); bounds.extend(pt); var marker = new google.maps.Marker({ position: pt, icon: icon, map: map }); } function initMap() { map = new google.maps.Map(document.getElementById("gmaps-canvas"), { center: new google.maps.LatLng(0, 0), zoom: 6, scrollwheel: true, draggable: true, mapTypeId: google.maps.MapTypeId.SATELLITE }); <?php include("admin/link.php"); include("admin/opendb.php"); $query = mysql_query("SELECT * FROM `detectinglocations` WHERE `locationid` = '$lid'"); while ($row = mysql_fetch_array($query)){ $locationname=$row['locationname']; $osgb36lat=$row['osgb36lat']; $osgb36lon=$row['osgb36lon']; echo ("addMarker($osgb36lat, $osgb36lon,'<b>$locationname</b><br/>');\n"); } mysql_close($connect); ?> center = bounds.getCenter(); map.fitBounds(bounds); var geocoder = new google.maps.Geocoder(); google.maps.event.addListener(map, 'click', function(event) { var userMarker = new google.maps.Marker({ map: map, position: event.latLng }); geocoder.geocode({'latLng': event.latLng}, function(results, status) { if(status == google.maps.GeocoderStatus.OK) { if (results[0]) { alert(results[0].formatted_address); } else { alert("No results"); } } else { alert("Geocoding unsuccessful: Status " + status); } }); }); } </script> в <script type="text/javascript"> //Sample code written by August Li var icon = new google.maps.MarkerImage("images/location-marker-2.png") new google.maps.Point(16, 32); var center = null; var map = null; var bounds = new google.maps.LatLngBounds(); function addMarker(lat, lng, info) { var pt = new google.maps.LatLng(lat, lng); bounds.extend(pt); var marker = new google.maps.Marker({ position: pt, icon: icon, map: map }); } function initMap() { map = new google.maps.Map(document.getElementById("gmaps-canvas"), { center: new google.maps.LatLng(0, 0), zoom: 6, scrollwheel: true, draggable: true, mapTypeId: google.maps.MapTypeId.SATELLITE }); <?php include("admin/link.php"); include("admin/opendb.php"); $query = mysql_query("SELECT * FROM `detectinglocations` WHERE `locationid` = '$lid'"); while ($row = mysql_fetch_array($query)){ $locationname=$row['locationname']; $osgb36lat=$row['osgb36lat']; $osgb36lon=$row['osgb36lon']; echo ("addMarker($osgb36lat, $osgb36lon,'<b>$locationname</b><br/>');\n"); } mysql_close($connect); ?> center = bounds.getCenter(); map.fitBounds(bounds); var geocoder = new google.maps.Geocoder(); google.maps.event.addListener(map, 'click', function(event) { var userMarker = new google.maps.Marker({ map: map, position: event.latLng }); geocoder.geocode({'latLng': event.latLng}, function(results, status) { if(status == google.maps.GeocoderStatus.OK) { if (results[0]) { alert(results[0].formatted_address); } else { alert("No results"); } } else { alert("Geocoding unsuccessful: Status " + status); } }); }); } </script> в <script type="text/javascript"> //Sample code written by August Li var icon = new google.maps.MarkerImage("images/location-marker-2.png") new google.maps.Point(16, 32); var center = null; var map = null; var bounds = new google.maps.LatLngBounds(); function addMarker(lat, lng, info) { var pt = new google.maps.LatLng(lat, lng); bounds.extend(pt); var marker = new google.maps.Marker({ position: pt, icon: icon, map: map }); } function initMap() { map = new google.maps.Map(document.getElementById("gmaps-canvas"), { center: new google.maps.LatLng(0, 0), zoom: 6, scrollwheel: true, draggable: true, mapTypeId: google.maps.MapTypeId.SATELLITE }); <?php include("admin/link.php"); include("admin/opendb.php"); $query = mysql_query("SELECT * FROM `detectinglocations` WHERE `locationid` = '$lid'"); while ($row = mysql_fetch_array($query)){ $locationname=$row['locationname']; $osgb36lat=$row['osgb36lat']; $osgb36lon=$row['osgb36lon']; echo ("addMarker($osgb36lat, $osgb36lon,'<b>$locationname</b><br/>');\n"); } mysql_close($connect); ?> center = bounds.getCenter(); map.fitBounds(bounds); var geocoder = new google.maps.Geocoder(); google.maps.event.addListener(map, 'click', function(event) { var userMarker = new google.maps.Marker({ map: map, position: event.latLng }); geocoder.geocode({'latLng': event.latLng}, function(results, status) { if(status == google.maps.GeocoderStatus.OK) { if (results[0]) { alert(results[0].formatted_address); } else { alert("No results"); } } else { alert("Geocoding unsuccessful: Status " + status); } }); }); } </script>