Когда ваш делегат MKMapView получает обновление местоположения пользователя, вы можете просмотреть свои оверлеи и посмотреть, находится ли местоположение пользователей внутри прямоугольника ограничивающей карты для любого из оверлеев. В своем оверлее просто добавьте свойство «color», которое вы можете использовать, чтобы найти цвет.
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
for (MyOverlayClass* overlay in mapView.overlays)
{
MKMapPoint userPoint = MKMapPointForCoordinate(userLocation.location.coordinate);
if ( MKMapRectContainsPoint(overlay.boundingMapRect, userPoint) )
{
UIColor* userInColor = overlay.color;
}
}
}