Привет, что такое formulla, чтобы получить долготу и широту любого адреса, если у меня есть имя улицы, имя_пользователя, имя города, имя_пользователя и почтовый индекс в PHP? благодаря
вы можете использовать следующий код для получения lat, долго используя php. Вот два типа, чтобы получить это
Тип 1
<?php // Get lat and long by address $address = $dlocation; // Google HQ $prepAddr = str_replace(' ','+',$address); $geocode=file_get_contents('https://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false'); $output= json_decode($geocode); $latitude = $output->results[0]->geometry->location->lat; $longitude = $output->results[0]->geometry->location->lng; ?>
изменить. Запросы в Google Картах должны превышать https.
Type-2
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> <script> var geocoder; var map; function initialize() { geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(50.804400, -1.147250); var mapOptions = { zoom: 6, center: latlng } map = new google.maps.Map(document.getElementById('map-canvas12'), mapOptions); } function codeAddress(address,tutorname,url,distance,prise,postcode) { var address = address; geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); var infowindow = new google.maps.InfoWindow({ content: 'Tutor Name: '+tutorname+'<br>Price Guide: '+prise+'<br>Distance: '+distance+' Miles from you('+postcode+')<br> <a href="'+url+'" target="blank">View Tutor profile</a> ' }); infowindow.open(map,marker); } /*else { alert('Geocode was not successful for the following reason: ' + status); }*/ }); } google.maps.event.addDomListener(window, 'load', initialize); window.onload = function(){ initialize(); // your code here <?php foreach($addr as $add) { ?> codeAddress('<?php echo $add['address']; ?>','<?php echo $add['tutorname']; ?>','<?php echo $add['url']; ?>','<?php echo $add['distance']; ?>','<?php echo $add['prise']; ?>','<?php echo substr( $postcode1,0,4); ?>'); <?php } ?> }; </script> <div id="map-canvas12"></div>
<?php $address = 'BTM 2nd Stage, Bengaluru, Karnataka 560076'; // Address // Get JSON results from this request $geo = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.urlencode($address).'&sensor=false'); $geo = json_decode($geo, true); // Convert the JSON to an array if (isset($geo['status']) && ($geo['status'] == 'OK')) { $latitude = $geo['results'][0]['geometry']['location']['lat']; // Latitude $longitude = $geo['results'][0]['geometry']['location']['lng']; // Longitude }?>
Для этого вы можете использовать API Карт Google. См. Сообщение в блоге ниже для получения дополнительной информации.
http://stuff.nekhbet.ro/2008/12/12/how-to-get-coordinates-for-a-given-address-using-php.html
Вы должны взглянуть на библиотеку Geocoder PHP5 🙂
Вам нужно получить доступ к службе геокодирования (т. Е. От Google), нет простой формулы для передачи адресов геологам.
PHP имеет несколько полезных встроенных функций для получения географического местоположения. Возможно, посмотрите здесь: http://php.net/manual/en/ref.geoip.php
Согласно руководству php, «для этого расширения требуется установка библиотеки GeoIP C версии 1.4.0 или выше. Вы можете получить последнюю версию с» http://www.maxmind.com/app/c и скомпилировать ее самостоятельно ».
Я придумал следующее, которое учитывает потерю мусора, а файл_get_contents терпит неудачу ….
function get_lonlat( $addr ) { try { $coordinates = @file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode($addr) . '&sensor=true'); $e=json_decode($coordinates); // call to google api failed so has ZERO_RESULTS -- ie rubbish address... if ( isset($e->status)) { if ( $e->status == 'ZERO_RESULTS' ) {echo '1:'; $err_res=true; } else {echo '2:'; $err_res=false; } } else { echo '3:'; $err_res=false; } // $coordinates is false if file_get_contents has failed so create a blank array with Longitude/Latitude. if ( $coordinates == false || $err_res == true ) { $a = array( 'lat'=>0,'lng'=>0); $coordinates = new stdClass(); foreach ( $a as $key => $value) { $coordinates->$key = $value; } } else { // call to google ok so just return longitude/latitude. $coordinates = $e; $coordinates = $coordinates->results[0]->geometry->location; } return $coordinates; } catch (Exception $e) { }
затем получить шнуры: где $ pc – почтовый индекс или адрес …. $ address = get_lonlat ($ pc); $ l1 = $ address-> lat; $ l2 = $ address-> lng;
Нет форума, поскольку названия улиц и городов в основном раздаются случайным образом. Адрес необходимо искать в базе данных. Кроме того, вы можете искать почтовый индекс в базе данных для региона, для которого предназначен почтовый индекс.
Вы не упомянули страну, поэтому я собираюсь предположить, что вам просто нужны адреса в США. Есть множество баз данных, которые вы можете использовать, некоторые бесплатные, а некоторые нет.
Вы также можете использовать API Карт Google, чтобы они искали адрес в своей базе данных для вас. Это, вероятно, самое простое решение, но требует, чтобы ваше приложение постоянно работало в Интернете.
Для адресов в США вы можете использовать геокодер , эта страница справки содержит несколько примеров кода на разных языках, чтобы вы начали.