Hay, ben PHP ve Google Maps API kullanarak 2 post kodları arasındaki mesafeyi çalışmak nasıl merak.
Herhangi biri herhangi bir fikir veya örnekler için bağlantılar var.
Eğer aradığınız varsayarak geographic distance, ilk olarak sizinle iki posta kodları enlem ve boylamını almak gerekiyor Google Maps server-side geocoding services aşağıdaki örnekte olduğu gibi:
$url = 'http://maps.google.com/maps/geo?q=EC3M,+UK&output=csv&sensor=false';
$data = @file_get_contents($url);
$result = explode(",", $data);
echo $result[0]; // status code
echo $result[1]; // accuracy
echo $result[2]; // latitude
echo $result[3]; // longitude
Sonra aşağıdaki gibi bir great-circle distance uygulamasını kullanarak iki posta kodları koordinatları arasındaki mesafeyi hesaplayabilirsiniz:
Sunucu tarafı coğrafi kodlama hizmeti yalnızca bir Google harita sonuçları görüntüleniyor ile birlikte kullanılabilir olabilir unutmayın; Bir harita üzerinde onları görüntülemeden coğrafi kodlama sonuçları Google Maps API Terms of Service License Restrictions tarafından yasaklanmıştır.
UPDATE:
Yerine coğrafi mesafe sürüş mesafesi arıyorsanız, sunucu tarafında bir HTTP isteği üzerinden Google Maps Var API erişmek için şu anda herhangi bir belgelenmiş ve onaylanmış bir yöntem olduğunu unutmayın.
Bununla birlikte, bir JSON çıktısını döndürür belgelenmemiş bir yöntem şudur:
http://maps.google.com/maps/nav?q=from:London%20to:Dover
Bu JSON formatında toplam sürüş mesafesi ile birlikte, size tariflerini dönecektir: "meters":122977
.
q
parametresinin biçimi olmalıdır from:xxx%20to:yyy
. Başlangıç ve varış sırasıyla xxx ve yyy değiştirin. Sen enlem kullanabilir ve bir boylam yerine tam adresleri koordinatları:
http://maps.google.com/maps/nav?q=from:51.519894,-0.105667%20to:51.129079,1.306925
Bu belgelenmemiş, ama aynı zamanda kısıtlamalar 10.1 ve Google Maps API Terms and Conditions 10.5 aykırı olabilir değil sadece unutmayın.
Ayrıca aşağıdaki ilgili makaleleri kontrol ilginç olabilir:
Burada e-posta listesine bir göz atın:
http://groups.google.com/group/Google-Maps-API/browse_thread/thread/71e6aa2c3de66127
Eğer gerçekten kolayca hesaplayabilirsiniz düz bir çizgi ya da sürüş mesafesi istiyorsanız karar. PHP kullanmak zorunda değilsiniz ama örnekler vardır.
Bu da bakmak:
Google Maps API JavaScript, değil PHP olduğunu. , Ne istediğinizi başarmak LatLang koordinatlara 2 post kodlarını açmak ve aralarındaki mesafeyi bulmak için işlevini distanceFrom
kullanın.
Bazı örnek kod için this article bir göz atın.
V3 API şeyi değiştirir, ama uzunca bir süre için bu kullanarak oldum ve hala çalışıyor bilmiyorum:
From and to are each expressed as latitude,longitude (an address would probably work; I'm sure I tried it but don't remember and I had the coordinates anyway)
$base_url = 'http://maps.googleapis.com/maps/api/directions/xml?sensor=false';
$xml = simplexml_load_file("$base_url&origin=$from&destination=$to");
$distance = (string)$xml->route->leg->distance->text;
$duration = (string)$xml->route->leg->duration->text
Daniel'in cevap üzerine bina, kolayca araba, toplu taşıma, yürüyüş ve bisiklet mesafeleri almak için Google'ın Geocoding API kullanabilirsiniz:
$postcode1='W1J0DB';
$postcode2='W23UW';
$result = array();
$url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins=$postcode1&destinations=$postcode2& Mode = bicycling&language=en-EN&sensor=false";
$data = @file_get_contents($url);
$result = json_decode($data, true);
print_r($result);
Tercih parametresi ile & Mode = bicycling olarak değiştirin emin olun: