Ваше приложение может использовать платформу Core Location для определения местоположения устройства. Базовое расположение будет использовать любое имеющееся оборудование для определения местоположения устройства в той степени, в которой вы запрашиваете. Например, на некоторых устройствах есть WiFi, но нет GPS; другие имеют WiFi, GPS и сотовые радиоприемники. В будущих устройствах могут быть встроены другие технологии определения местоположения.
Дело в том, что, как программист, вы не беспокоитесь об этом. Вместо этого вы говорите: «дайте мне местоположение с точностью до 100 метров» или «дайте мне знать, когда устройство переместилось из текущей точки более чем на 10 метров» или «дайте мне местоположение с максимальной точностью, с которой вы можете управлять. «
Опять же, посмотрите документацию Apple Core Location , чтобы получить более полное представление о том, как все это работает.
Если вы хотите отслеживать устройство, скажем, с разрешением 1 метр внутри здания, вы вряд ли получите это из Базового местоположения. Было проведено исследование триангуляции положения с использованием известных местоположений приемопередатчиков WiFi , но ничего такого, что было реализовано в любом коммерческом смартфоне, о котором я знаю. Я не верю, что iOS предоставляет вам легкий доступ к данным, которые вам понадобятся для этого, поэтому, вероятно, это невозможно. Однако вы можете пойти другим путем: запрограммировать несколько WiFi-приемников по всему зданию для прослушивания любых соседних устройств, использовать эту информацию для триангуляции положения устройств, а затем сделать эту информацию доступной через какой-либо веб-сервис.