Belirli Radius Posta Kodları bulma

2 Cevap php

Ben SaniSoft bu popüler PHP / MySQL Script denilen Zip Yer bulduk ve bir şey dışında büyük işler: Bazı durumlarda değil.

Bu 20 kilometre altında herhangi yarıçapı 20 kilometre zip kodları aynı miktarda döner gibi görünüyor. Tüm google aradı, ama boşuna ve birisi bu durumla ilgili bazı bilgiler vardı merak ediyordum var.

Doğrusu bir program için ödemek zorunda önce bu sorunu anlamaya olurdu ve ben de öğrenme deneyimi kullanabilirsiniz. Veritabanı posta kodları ve boylamları ve her posta kodu enlemler bir listesidir. Komut girilen posta kodu etrafında mesafeyi belirler ve boylam / enlem dayalı bu yarıçap içinde zip kodları döndüren bir yöntem kullanır.

Teşekkür ederiz!

Edit: From using the distance function that the script provides I have discovered that the distance between the Zip Codes that the program gives me and my zip code are coming up as 0 miles.

MAJOR UPDATE

Araştırmada elde edilen veritabanı enlem / boylam değerleri çoğaltmak olduğu ortaya çıkıyor. Zip Bulucu kullanırken bunun farkında olun. PHP işini yapar rağmen, zip kodları, yeni bir veritabanı bulmak gerekir. Ben daha sonraki bir tarihte benim bulguları yayınlayacağız.

2 Cevap

İkinci deneyin!

Düzenlenen sorunun deyimi görünce, ben size zip değerleri atamak nasıl bakmak istiyorum.

Zip kodları tamsayılar yerine dizeleri ise hataların sürü sokulabilir. Büyük sorun Amerikan zip kodları 0 ile başlangıç ​​olabilir.

Ziptest.php de örnekler tamsayılar olarak tedavi fermuarlar beri, iyi değildir. Eğer bir tamsayı ile kendi posta kodu açıklamak için çalıştığınızda:

$zip1 = 02446;

Onun sekizli değeri 2446. PhpZipLocator herhangi bir açık dönüştürme olmadan bir dize olarak değer kullanır olarak PHP tarafından yorumlanır. PHP, bu nedenle hiç bir posta kodu olmayan bir dize (1318) gibi o sekizlik 2446 ondalık değerini verir.

Bunun yerine bir posta kodu bulmak olmadığını bildirerek, phpZipLocator o 1 olmalıdır karar yok bir şey, belirli bir yarıçap içinde tüm zip kodları bir yarıçapı arama yapar.

Ben bir dize kullanarak posta kodu ayarlarsanız

$zip1 = '02446';

Ben doğru sonuç almak.

PhpZipLocator kullanma biraz çalışma olabilir gibi görünüyor IMHO.

PhpZipLocator için gösteri komut (ziptest.php) yarıçaplı için varsayılan değer varsayılan yarıçapı 20 kilometre kullanır

$radius = 20;
$zipArray = $zipLoc->inradius($zipOne,$radius);

Benim tahminim bu değer için $radius kodunuzu hala ve kullanmak istediğiniz yarıçapı yazılmadan olduğunu olurdu. Bir yapıyor deneyin için arama ve değiştirme $radius.

Daha da iyisi, bir hata ayıklayıcı ile koduna bakmak ve inradius() çağırdığınızda $radius 20 olarak ayarlanmış olup olmadığını görmek.