টাইম জোনে মার্কিন জিপ কোড ম্যাপিং [বন্ধ]


84

ব্যবহারকারীরা যখন আমাদের অ্যাপ্লিকেশনটির সাথে নিবন্ধভুক্ত হয়, তখন আমরা কোনও জাতীয় ডাটাবেসের বিরুদ্ধে তাদের বৈধতা দেওয়ার সময় আমরা তাদের জিপ কোডটি অনুমান করতে সক্ষম হই। এই জিপ কোড থেকে তাদের সময় অঞ্চল সম্পর্কে ভাল সম্ভাবনা অনুমান করার সর্বোত্তম উপায় কী হবে?

আমরা স্পষ্টভাবে তাদের যে পরিমাণ ডেটা চেয়েছি তা হ্রাস করার চেষ্টা করছি। আমাদের সেরা অনুমানটি যদি ভুল হয় তবে তারা পরে ম্যানুয়ালি সময় অঞ্চল নির্ধারণ করতে সক্ষম হবে। আমি বুঝতে পারি যে জিপ কোডগুলি মার্কিন যুক্তরাষ্ট্রের বাইরের সময় অঞ্চল নির্ধারণে সহায়তা করবে না, তবে সেক্ষেত্রে আমাদের যেকোনভাবে ম্যানুয়ালি জিজ্ঞাসা করতে হবে এবং আমরা নির্বিশেষে মার্কিন যুক্তরাষ্ট্রে আচরণ করব।

আমি জিপ কোডের ডাটাবেস অনেকটা পাওয়া করেছি, এবং এ পর্যন্ত মাত্র কয়েক সময় অঞ্চল তথ্য থাকে, কিন্তু সাহায্য করতে পারে এমন যেমন, মুক্ত নয় এই এক । এটি করার জন্য যদি কোনও পরিষেবায় সাবস্ক্রিপশন প্রদান করা একেবারে প্রয়োজনীয় হয়, তবে এটি কার্যকর হবে না এবং আমাদের কেবল ব্যবহারকারীদের স্পষ্টভাবে জিজ্ঞাসা করতে হবে।

যদিও ভাষা বিশেষত প্রাসঙ্গিক নয় কারণ আমি সম্ভবত প্রয়োজনীয় জিনিসগুলিকে রূপান্তর করতে পারি তবে আমরা পিএইচপি এবং মাইএসকিউএল ব্যবহার করি।


4
অনুমান করা সম্পর্কে প্রশ্নের জন্য +1
ক্রিস ম্যাককাল

উত্তর:


37

আমি সবেমাত্র একটি ফ্রি জিপ ডাটাবেস পেয়েছি যার মধ্যে টাইম অফসেট এবং ডিএসটিতে অংশ নেওয়া রয়েছে। আমি এরিক জেলের জবাব পছন্দ করি, কারণ এটি আমাকে কেবল অফসেটের বিপরীতে প্রকৃত সময় অঞ্চল বেছে নিতে সহায়তা করবে (কারণ আপনি কখনই বিধি সম্পর্কে পুরোপুরি নিশ্চিত হতে পারবেন না) তবে আমি মনে করি আমি এটি দিয়েই শুরু করতে পারি এবং চেষ্টা করার চেষ্টা করি অফসেট / ডিএসটি কনফিগারেশনের উপর ভিত্তি করে সেরা টাইম জোন ম্যাচটি সন্ধান করুন। আমি মনে করি যে আমি জিপ তথ্য থেকে স্যানিটি পরীক্ষা হিসাবে যা পাই তার বিরুদ্ধে যাচাই করার জন্য আমি বিকাশ 4.0 এর উত্তরের একটি সাধারণ সংস্করণ সেট করার চেষ্টা করতে পারি। এটি আমি আশা করি ঠিক ততটা সহজ নয়, তবে একটি সংমিশ্রণটি আমাকে ব্যবহারকারীর সময় অঞ্চল সম্পর্কে কমপক্ষে 90% নিশ্চিত হওয়া উচিত।


@ ডগ: জিওকোডিংয়ের সাথে সম্পর্কিত যে কোনও কিছুই কখনই 100% সঠিক হবে না, যখন আপনি কেবল জিপ স্তরে অভিনয় করছেন তখন আরও বেশি কিছু ঘটে না। তবুও, আপনি যদি সময়ের 90% + সঠিক হতে পারেন তবে এটি সম্ভবত আপনার ব্যবহারকারীদের জন্য উপকারী হবে। সবচেয়ে খারাপ আপনি সম্ভবত বন্ধ এক ঘন্টা হয়।
এরিক জে

4
নজর রাখুন, ফ্রি জিপ ডেটাবেসগুলি প্রায় সর্বদা অপ্রচলিত, যেহেতু ডাক পরিষেবা পরিষেবাটিতে ফাইলটি মাসিক পরিবর্তন করে। এছাড়াও semaphorecorp.com/cgi/zip5.html দেখুন
জো স্নাইডার

এই লিঙ্কটি কিছু ভাল পয়েন্ট নিয়ে আসে, তবে যেহেতু আমি সাধারণ অঞ্চলে অনুমান করার জন্য এটি ব্যবহার করছি (এবং সংশোধনের অনুমতি দিচ্ছি), তাই আমাকে খুব বেশি চিন্তা করার দরকার নেই। যদি কোনও জিপ কোড একাধিক টাইমজোনকে বিভক্ত করতে না পারে - তবে সেক্ষেত্রে এটি ইতিমধ্যে একটি প্রান্তের কেস এবং যেহেতু আমরা কখনই ব্যবহারকারীর ঠিকানা জিজ্ঞাসা করব না আমরা সেগুলি আরও বৈধকরণের জন্য ব্যবহার করতে সক্ষম হব না। তবে প্রকৃতপক্ষে, আমাদের সম্ভবত জিনিসটি লাইভ হওয়ার আগে একটিতে সাবস্ক্রাইব করা, আপ টু ডেট রাখার জন্য দরকারী। বিনামূল্যেটি পরীক্ষার জন্য কমপক্ষে ভাল।
ডগ কাভেন্ডেক

4
@ জোসনিদার লিঙ্কটি নষ্ট হয়ে গেছে, আপনি কি আপডেট করতে পারবেন বা কমপক্ষে সেখানে কী ছিল তা ব্যাখ্যা করতে পারবেন?
dlsso


26

বেশিরভাগ রাজ্যগুলি হুবহু এক সময় অঞ্চলে (যদিও কিছু ব্যতিক্রম রয়েছে)। বেশিরভাগ জিপ কোডগুলি রাষ্ট্রের সীমানা অতিক্রম করে না (যদিও কয়েকটি ব্যতিক্রম রয়েছে)।

আপনি সেই তথ্যগুলিকে একত্র করে দ্রুত জিপ প্রতি আপনার নিজস্ব সময় অঞ্চলগুলির তালিকা নিয়ে আসতে পারেন।

এখানে প্রতি রাজ্যে জিপ কোড রেঞ্জের একটি তালিকা এবং সময় অঞ্চল অনুসারে রাজ্যের একটি তালিকা ।

টাইম জোনের লাইন দ্বারা বিভক্ত রাষ্ট্রগুলির জন্য সময় অঞ্চলগুলিতে জিপগুলি ম্যাপ করতে আপনি জিপ কোডগুলির সীমানা দেখতে এবং এই লিঙ্কটি বা গুগল আর্থ ব্যবহার করে টাইমজোন মানচিত্রের সাথে তুলনা করতে পারেন ।

আপনি যে মার্কিন যুক্তরাষ্ট্রে নন-মার্কিন যুক্তরাষ্ট্রে লেনদেন করছেন তাদের বেশিরভাগই সম্ভবত এক সময় অঞ্চলে (আবার ব্যতিক্রমও রয়েছে)। আপনার প্রয়োজনের উপর নির্ভর করে আপনি আপনার শীর্ষ-এন-মার্কিন-দর্শকরা কোথা থেকে এসেছেন এবং কেবল তাদের সময় অঞ্চলটি সন্ধান করতে পারেন।


4
বাহ, ব্যতিক্রম কি?
হামিশ গ্রুবিজন

4
@ হামিশ: একাধিক টাইম জোনে রাজ্যগুলির ব্যতিক্রম আপনি উইকিপিডিয়া লিঙ্কে দেখতে পাবেন (প্রতি অঞ্চল অঞ্চলে রাজ্য)। আমার সহকর্মী আমরা কথা বলার সাথে সাথে রাজ্যে জিপগুলি ম্যাপ করছে এবং কয়েকটি জিপগুলি পেয়েছি যা রাষ্ট্রের রেখাগুলি অতিক্রম করে। একটি উদাহরণ 42223.
এরিক জে

4
আরও মনে রাখবেন যে কয়েকটি রাজ্য (কেবলমাত্র অ্যারিজোনা এবং হাওয়াই আমার মনে হয় ) দিবালোকের সঞ্চয় সময়গুলি পালন করে না।
জন-এরিক

4
মার্কিন যুক্তরাষ্ট্রের উত্তর-পশ্চিমের রাজ্যে প্রতি রাজ্যে মিলিয়ন এবং একটি জিপ কোড রয়েছে; ন্যায্য সতর্কতা.
কিউস - মোনিকা

4
এটি কয়েকটি ব্যাতিক্রমের চেয়ে অনেক বেশি। টাইমটেম্পেচারিটি
ক্রিস মোসচিনি

12

আমি একটি ওপেন-সোর্স (এমআইটি লাইসেন্সযুক্ত) মাইএসকিউএল ডাটাবেস টেবিল তৈরি করেছি যা জিপ কোড এবং টাইমজোনগুলি ক্রস-রেফারেন্স করে এবং সোর্সফোর্জন.নেটে এটি আপলোড করে:

http://sourceforge.net/projects/zip2timezone/files/

এটি চারটি অবস্থান থেকে সংগ্রহ করা হয়েছে (প্রাথমিক ইয়াহু প্লেসফাইন্ডার এপিআই - ধন্যবাদ @ ক্রিস এন)

আরও তথ্য এবং নির্দেশাবলীর জন্য README ফাইলটি দেখুন।


কোন সুযোগ আপনার এখনও কোড আছে যে উত্পন্ন? এটি এখন কয়েক বছরের পুরনো, এবং আমি একটি নতুন ডেটাসেট পাব আশা করি।
বিলি

8

আপনি যদি চান তবে আপনি ব্রাউজারটিকে জিজ্ঞাসা করে টাইমজোনটির অনুভূতি পেতে পারেন জোশ ফ্রেজারের এখানে একটি সুন্দর লেখা আছে

var rightNow = new Date();
var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);
var temp = jan1.toGMTString();
var jan2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
var std_time_offset = (jan1 - jan2) / (1000 * 60 * 60);

দ্বিতীয় জিনিস যা আপনার জানা দরকার তা হ'ল অবস্থানটি দিবালোক সঞ্চয়ের সময় (ডিএসটি) পর্যবেক্ষণ করে কিনা। যেহেতু গ্রীষ্মের সময় ডিএসটি সর্বদা পালন করা হয়, তাই আমরা জানুয়ারীর দুটি তারিখের মধ্যে অফসেটের সময়টিকে জুনের দুটি তারিখের মধ্যে অফসেটের সাথে তুলনা করতে পারি। যদি অফসেটগুলি পৃথক হয়, তবে আমরা জানি যে অবস্থানটি ডিএসটি পালন করে। যদি অফসেটগুলি একই হয়, তবে আমরা জানি যে অবস্থানটি ডিএসটি পালন করে না।

var june1 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0);
temp = june1.toGMTString();
var june2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
var daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
var dst;
if (std_time_offset == daylight_time_offset) {
    dst = "0"; // daylight savings time is NOT observed
} else {
    dst = "1"; // daylight savings time is observed
}

এর সমস্ত ক্রেডিট জোশ ফ্রেজারের কাছে যায়।

এটি আপনাকে মার্কিন যুক্তরাষ্ট্রের বাইরের গ্রাহকদের সাথে সহায়তা করতে পারে এবং এটি আপনার জিপ পদ্ধতির পরিপূরক হতে পারে।

এখানে জাভাস্ক্রিপ্ট থেকে টাইমজোন পাওয়ার বিষয়ে স্পষ্ট প্রশ্ন রয়েছে O


4
ধন্যবাদ! জোশ তাঁর সাইটে যেমন উল্লেখ করেছেন, জন নাইল্যান্ডার "আরও শক্তিশালী সমাধান লিখেছেন। পরিবর্তে তার সংস্করণটি ব্যবহার করুন"। তার সংস্করণটি এখানে রয়েছে: বিটবকেট.আর.
ব্র্যাড পার্কস

6

গুগলের জন্য এটির জন্য একটি নির্দিষ্ট এপিআই রয়েছে: https://developers.google.com/maps/docamentation/timezone/

উদাহরণস্বরূপ: https://maps.googleapis.com/maps/api/imezone/json?location=40.704822,-74.0137431×tamp=0

{
  dstOffset: 0,
  rawOffset: -18000,
  status: "OK",
  timeZoneId: "America/New_York",
  timeZoneName: "Eastern Standard Time"
}

কোয়েরিস্ট্রিংয়ের জন্য তাদের একটি ইউনিক্স টাইমস্ট্যাম্প প্রয়োজন। প্রত্যুত্তর দেওয়া প্রতিক্রিয়া থেকে দেখা যাচ্ছে যে timeZoneNameটাইমস্ট্যাম্পের উপর ভিত্তি করে দিবালোকের সঞ্চয়গুলি গ্রহণ করে, যখন সময় timeZoneIdঅঞ্চলটির জন্য একটি ডিএসটি-স্বতন্ত্র নাম।

আমার ব্যবহারের জন্য, পাইথন, আমি শুধু ক্ষণস্থায়ী করছি timestamp=0এবং ব্যবহার timeZoneIdমান একটি পেতে tz_infoথেকে অবজেক্ট pytz , আমি তখন ব্যবহার করতে পারেন যে আমার নিজের কোডে কোন বিশেষ DATETIME স্থানীয়করণ করা হয়।

আমি পিএইচপি-র জন্য বিশ্বাস করি একইভাবে আপনি http://pecl.php.net/package/timezoneb এ "আমেরিকা / নিউ_ইয়র্ক" খুঁজে পেতে পারেন


4
নোট করুন যে গুগলের জিওকোডিং এপিআইয়ের লাইসেন্সিংয়ের জন্য আপনাকে কোনও মানচিত্রে প্রদর্শনের জন্য ফলাফলগুলি ব্যবহার করা প্রয়োজন ...
জোশ

@ জোশ আপনি কি বলছেন যে স্থানটির টাইমজোন নির্ধারণের উদ্দেশ্যে আমি কোনও অবস্থান দখল করতে জিওকোডিং এপিআই ব্যবহার করতে পারি না?
ক্রંચার

4
নীতি পৃষ্ঠা থেকে: "আপনি একটি গুগল ম্যাপে বা কোনও মানচিত্র ছাড়াই টাইম জোন এপিআই ফলাফলগুলি প্রদর্শন করতে পারেন you আপনি যদি কোনও মানচিত্রে টাইম জোন এপিআই ফলাফলগুলি প্রদর্শন করতে চান তবে এই ফলাফলগুলি অবশ্যই Google মানচিত্রে প্রদর্শিত হতে হবে be এটি নিষিদ্ধ is Google মানচিত্র নয় এমন মানচিত্রে টাইম জোনের এপিআই ডেটা ব্যবহার করতে। developers.google.com/maps/docamentation/timezone/policies
tmorell

4

রুবি রত্নটি জিপ কোডকে টাইমজোনতে রূপান্তর করতে: https://github.com/Katlean/TZip ( https://github.com/farski/TZip থেকে কাটা )।

> ActiveSupport::TimeZone.find_by_zipcode('90029')
 => "Pacific Time (US & Canada)"

এটি দ্রুত, ছোট এবং কোনও বাহ্যিক নির্ভরতা নেই, তবে মনে রাখবেন যে জিপ কোডগুলি কেবল টাইমজোনগুলিতে পুরোপুরি মানচিত্র করে না।


4
মূল টিজেপ এবং ক্যাটলিনের কাঁটাচামচ দুটিই ভাল তবে 100% সঠিক নয়। কিছু জিপ কোড (সম্ভবত শেষ কয়েক বছরে প্রবর্তিত) এর জন্য অ্যাকাউন্ট করা হয় না।
bigtex777

1

আমি আমার নিজের সাইটের জন্য এই সমস্যাটি নিয়ে কাজ করছি এবং মনে হচ্ছে আমি খুব ভাল সমাধান নিয়ে এসেছি

1) কেবলমাত্র একটি সময় অঞ্চল (সমস্ত রাজ্য) সহ সমস্ত রাজ্যে সময় অঞ্চল নির্ধারণ করুন

এবং তারপর হয়

2 ক) অবশিষ্ট রাজ্যের জন্য জেএস সমাধান ( জাভাস্ক্রিপ্ট / পিএইচপি এবং টাইমজোনগুলি ) ব্যবহার করুন

বা

2 বি) উপরের লিঙ্কযুক্ত একটি ডেটাবেস যেমন @ ডউগ ব্যবহার করুন।

এইভাবে, আপনি আপনার বেশিরভাগ ব্যবহারকারীর জন্য সুলভ (এবং অত্যন্ত নির্ভুলভাবে!) টিজেস খুঁজে পেতে পারেন এবং তারপরে অন্য রাজ্যের জন্য এটির জন্য আরও একটি ব্যয়বহুল পদ্ধতি ব্যবহার করতে পারেন।

সুপার মার্জিত নয়, তবে প্রতিটি ব্যবহারকারীর জন্য জেএস বা একটি ডাটাবেস ব্যবহার করার চেয়ে আমার কাছে ভাল মনে হয়েছিল।


1

ডগ কাভেন্দেকের উত্তর ছাড়াও। Tz_dat database এর নিকটবর্তী হতে কেউ নিম্নলিখিত পদ্ধতির ব্যবহার করতে পারে

  1. ডাউনলোড করুন [ফ্রি জিপ কোড অক্ষাংশ এবং দ্রাঘিমাংশ ডাটাবেস]
  2. ডাউনলোড করুন [বিশ্বের টিজেড টাইমজোনগুলির একটি আকার]
  3. শেফফাইল অনুসন্ধানের জন্য যে কোনও ফ্রি লাইব্রেরি ব্যবহার করুন (যেমন। নেট ইজি জিআইএস। নেট , এলজিপিএল)।
    var formFile = নতুন শেপফিল (shapeFilePath);
    var শেপ ইন্ডেক্স = আকৃতি ফাইল।
    var attrValues ​​= formFile.GetAttributeFieldValues ​​(শেপইন্ডেক্স);
    var টাইমজোনআইড = অ্যাট্রিভ্যালুস [0];

পিএস সমস্ত লিঙ্ক সন্নিবেশ করতে পারে না :( সুতরাং দয়া করে অনুসন্ধান ব্যবহার করুন।


1

এটি একটি ইয়ামল ফাইল ডাউনলোড করবে যা সমস্ত টাইমজোনকে তাদের জিপকোডের একটি অ্যারে মানচিত্রযুক্ত করবে:

curl https://gist.githubusercontent.com/anonymous/01bf19b21da3424f6418/raw/0d69a384f55c6f68244ddaa07e0c2272b44cb1de/timezones_to_zipcodes.yml > timezones_to_zipcodes.yml

যেমন

"Eastern Time (US & Canada)" => ["00100", "00101", "00102", "00103", "00104", ...]
"Central Time (US & Canada)" => ["35000", "35001", "35002", "35003", "35004", ...]
etc...

যদি আপনি সংক্ষিপ্ত সময় অঞ্চলগুলি পছন্দ করেন তবে আপনি এটি চালাতে পারেন:

curl https://gist.githubusercontent.com/anonymous/4e04970131ca82945080/raw/e85876daf39a823e54d17a79258b170d0a33dac0/timezones_to_zipcodes_short.yml > timezones_to_zipcodes.yml

যেমন

"EDT" => ["00100", "00101", "00102", "00103", "00104", ...]
"CDT" => ["35000", "35001", "35002", "35003", "35004", ...]
etc...

4
এর মধ্যে রয়েছে প্যাসিফিক সময় হিসাবে 96941 (মাইক্রোনেশিয়া), এবং প্রশান্ত মহাসাগরীয় সময়ে একটি জিপ কোড হিসাবে 83500 অন্তর্ভুক্ত, তবে আমি বিশ্বাস করি না যে যুক্তরাষ্ট্রে বিদ্যমান। কীভাবে ডেটা তৈরি করা হয়েছিল?
জাস্টিন ফাঁকা


0

আরও মনে রাখবেন, আপনি যদি ইয়াহু জিওকোডিং পরিষেবা ব্যবহার করছেন বলে মনে করেন তবে সঠিক পতাকাটি সেট করে টাইমজোন তথ্য আপনাকে ফিরিয়ে দিতে পারে।

http://developer.yahoo.com/geo/placefinder/guide/requests.html#flags-parameter


এক সময় কার্যকর হতে পারে, তবে ইয়াহুর দুর্দান্ত জিওকোডিং পরিষেবা বেশ কয়েক বছর আগে ইওল ছিল।
মুক্তিদাতা

0

এর জন্য আসলে একটি দুর্দান্ত গুগল এপিআই রয়েছে। এটি কোনও অবস্থান নেয় এবং সেই জায়গার জন্য টাইমজোন দেয়। সিএসভি ফাইল বা ডাটাবেসে প্রতিটি ঠিকানার ফলাফল পেতে টাইমজোন তথ্য সংরক্ষণ করার জন্য ব্যাশ বা পাইথন স্ক্রিপ্ট তৈরি করার পক্ষে যথেষ্ট সহজ হওয়া উচিত।

https://developers.google.com/maps/docamentation/timezone/start

অনুরোধ শেষ পয়েন্ট:

https://maps.googleapis.com/maps/api/timezone/json?location=38.908133,-77.047119&timestamp=1458000000&key=YOUR_API_KEY

প্রতিক্রিয়া:

{
   "dstOffset" : 3600,
   "rawOffset" : -18000,
   "status" : "OK",
   "timeZoneId" : "America/New_York",
   "timeZoneName" : "Eastern Daylight Time"
}

এটি লক্ষ্য করা উচিত, এপিআই 1k কলের জন্য 5 ডলার।
ফ্লাইংজেব্রা 1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.