مرشح عن طريق الرمز البريدي أو أي موقع آخر على أساس استرجاع البيانات استراتيجيات

StackOverflow https://stackoverflow.com/questions/12823

  •  08-06-2019
  •  | 
  •  

سؤال

بلدي قليلا يجب أن يكون الموقع تجميع قائمة من البنود من جدول باستخدام النشطة موقع المستخدم كعامل تصفية.أعتقد كريغزلست, حيث يمكنك البحث عن "دي في دي' ولكن النتائج ليست من كل ديسيبل ، يتم تصفيتها عن طريق موقع يمكنك تحديد.سؤالي 2 مستويات:

  1. يجب أن أذهب a-la-كريغزلست ، و تطلب من المستخدمين استخدام مستوى المدينة الموقع ؟ مشكلتي مع ذلك هو أن تحتاج إلى توليد ما يبدو لي من الصعب ترميز, اليد التي قدمت قائمة من المواقع.
  2. يجب أن أذهب a-la-الرمز البريدي.فكرة فقط يطلب من المستخدم إلى نوع له الرمز البريدي ، ثم تجمع جميع البنود التي هي في نفس أو في مسافة معينة من الرمز البريدي.

يبدو أنني يفضلون الرمز البريدي الطريقة كما يبدو أكثر أناقة الحل ولكن كيف على الأرض لا أحد يذهب عن خلق DB جميع رموز البريدي و تنفيذ وظيفة معينة الرمز البريدي 12345, يحصل كل zipcodes في 1 ميل المسافة ؟

يجب أن يكون هذا شائع إلى حد ما "المهمة" العديد من المواقع تحتاج مماثلة لإزالة الألغام ، لذلك أنا أتمنى أن لا إعادة اختراع العجلة هنا.

هل كانت مفيدة؟

المحلول

الحصول على الرمز البريدي قاعدة البيانات لا توجد مشكلة.يمكنك محاولة هذا واحد مجانا:http://zips.sourceforge.net/

على الرغم من أنني لا أعرف كيف الحالية ، أو يمكنك استخدام واحدة من العديد من مقدمي الخدمات.لدينا اشتراك سنوي ZipCodeDownload.com, و ربما 100 دولار نحصل على التحديثات الشهرية مع أحدث البيانات الرمز البريدي الكامل مع اللات/يتوق من النقطه الوسطى من الرمز البريدي.

أما بالنسبة الاستعلام عن جميع الكود البريدية داخل دائرة نصف قطرها معينة, وأنت تسير في حاجة إلى المكاني مكتبة نوع.إذا كان لديك مجرد جدول من الكود البريدية مع لاتس/longs, سوف تحتاج إلى قاعدة بيانات آلية المنحى.SQL Server 2008 لديها القدرة على بناء و هناك المكتبات مفتوحة المصدر و المكتبات التجارية من شأنها أن تضيف هذه القدرات إلى SQL Server 2005.قاعدة البيانات مفتوحة المصدر كيو لديه مشروع ، PostGIS أن يضيف هذه القدرة إلى قاعدة البيانات.فمن هنا: http://postgis.refractions.net/

قاعدة بيانات أخرى منصات ربما لديها مشاريع مماثلة ، ولكن تلك هي تلك التي أنا على علم.مع واحدة من هذه DB بناء المكتبات يجب أن تكون قادرة على الاستعلام مباشرة عن أي رموز البريدي (أو أي الصفوف من أي نوع التي قد lat/long الأعمدة) في غضون نصف قطرها معينة.

إذا كنت تريد أن تذهب طريقا مختلفا يمكنك استخدام الأدوات المكانية مع رسم المكتبة.هناك مفتوحة المصدر الخيارات هنا ، SharpMap و العديد من الآخرين (جوجل يمكن أن تساعد بها) التي يمكن استخدامها مجانا النمر خرائط الولايات المتحدة كمصدر بيانات.إلا أن هذا الطريق هو إلى حد ما أكثر تعقيدا وربما أقل performant إذا كان كل ما تحتاجه هو دائرة نصف قطرها البحث.

أخيرا, قد ترغب في النظر في خدمة ويب.هذا كما تقول هو حاجة مشتركة, و أتصور أن هناك أي عدد ob خدمات ويب التي يمكنك الاشتراك التي يمكن أن توفر جميع رموز البريدي في دائرة نصف قطرها من المقدمة الرمز البريدي.جوجل للبحث سريع تحولت هذه:http://www.zip-codes.com/free-zip-code-tools.asp#radius ولكن هناك العديد من الموارد قد يكون لهذا البحث على هذا الموضوع.

نصائح أخرى

كيف على الأرض أحد [...] تنفيذ الدالة التي تعطى الرمز البريدي 12345, يحصل كل zipcodes في 1 ميل المسافة ؟

هنا هو مثال على كيفية القيام بذلك:

http://www.codeproject.com/KB/cs/zipcodeutil.aspx

فقط أن تكون التقنية...PostGIS ليس مشروع بوستجرس المجتمع...انها قائمة بذاتها المشروع التي بنيت على أعلى من بوستجرس.إذا كنت تريد مساعدة أو دعم PostGIS ، أنت تريد أن تذهب إلى المجتمع بدلا من بوستجرس.

يمكنك استخدام PostGIS.بالإضافة إلى ذلك, لقد استعملت deCarta الخرائط من المكتبات.لديهم التكنولوجيا التي تسمح لك geokey أي التعسفي نوع البيانات.ثم يمكنك الاستعلام هذه مكانيا.

تنويه:أنا أعمل deCarta

لن يكون أكثر كفاءة فقط معرفة المدن التي هي مسافة 1 ميل و تخزين هذه المعلومات في الجدول ؟ ثم لم يكن لديك إلى القيام بعمليات حسابية في قاعدة البيانات في كل وقت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top