Ну, нет формулы, которая скажет вам что-нибудь о том, где находятся штаты (это было бы спойлером по поводу итогов войны между США и Мексикой, если бы она была!) Так что вам нужно получить это данные откуда-то.
Это превращается в одну из двух проблем, в зависимости от степени точности, которую вы хотите.
Если у вас есть детали прямоугольника, который показан прямоугольным при отображении на Меркаторе или аналогичной проекции (т. Е. Он имеет градусы широты для севера и юга и долготы для востока и запада), тогда формула будет просто :
inBox = latitude <= north && latitude >= south && longitude <= west && longitude >= east
Если у вас есть больше деталей, и у вас есть ряд точек, которые определяют границу состояния (очевидно, чем больше точек, тем больше точность), то это становится вариантом задачи точка-многоугольник с гарантией только с участием простых полигонов (ни один штат США не имеет границы, которая пересекает себя, и не полностью окружает то, что использовалось в этом коде C . Возможно, что будут крайние случаи, затронутые фактом, что это 2D- плоский алгоритм, а не сферический, но я полагаю, что вам понадобятся довольно точные данные о границах состояний, чтобы погрешность алгоритма была больше, чем вызванная данными.